/* BonusMath — "math notebook" theme. Cream graph paper, navy ink, mint + highlighter. */
:root{
  --paper:#fbf6e8;--paper-2:#fffdf6;--grid:rgba(20,33,61,.065);--grid-major:rgba(20,33,61,.11);
  --ink:#14213d;--ink-2:#3b4868;--ink-3:#5f6b86;--line:rgba(20,33,61,.18);
  --mint:#2ec4b6;--mint-ink:#0b7268;--mint-soft:rgba(46,196,182,.14);
  --hi:#ffd23f;--hi-soft:rgba(255,210,63,.45);
  --neg:#b4233c;--pos:#0b7268;
  --r:10px;--shadow:3px 3px 0 var(--ink);
  --mono:"Space Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.65;color:var(--ink);background-color:var(--paper);
  background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:120px 120px,120px 120px,24px 24px,24px 24px;overflow-x:hidden}
img,svg{max-width:100%}
a{color:var(--mint-ink);text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{color:var(--ink);background:var(--hi-soft)}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 6px var(--hi)}
h1,h2,h3{line-height:1.2;margin:0 0 .6em;letter-spacing:-.01em}
h1{font-size:clamp(1.9rem,4.6vw,3rem);font-weight:700}
h2{font-size:clamp(1.4rem,2.8vw,1.9rem)}
h3{font-size:1.15rem}
p{margin:0 0 1em}
code{font-family:var(--mono);font-size:.88em;background:var(--mint-soft);padding:.05em .35em;border-radius:4px}
mark{background:linear-gradient(transparent 52%,var(--hi) 52%,var(--hi) 92%,transparent 92%);color:inherit;padding:0 .1em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--hi);color:var(--ink);padding:8px 14px;z-index:20}
.skip:focus{left:8px}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 16px}
.small{font-size:.9rem;color:var(--ink-3)}
.pos{color:var(--pos)}.neg{color:var(--neg)}
.num{font-family:var(--mono);white-space:nowrap}
.no-js .js-only{display:none}

/* header */
.hdr{position:sticky;top:0;z-index:10;background:rgba(251,246,232,.94);backdrop-filter:blur(6px);border-bottom:2px solid var(--ink)}
.hdr__in{display:flex;align-items:center;gap:16px;min-height:64px;flex-wrap:wrap}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.logo:hover{background:none;color:var(--ink)}
.logo__txt{font-family:var(--mono);font-size:1.2rem;letter-spacing:-.02em}
.logo__txt b{background:linear-gradient(transparent 60%,var(--hi) 60%)}
.hdr__burger{margin-left:auto;background:none;border:2px solid var(--ink);border-radius:8px;padding:6px 8px;color:var(--ink);cursor:pointer;display:none}
.nav{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center;margin-left:auto}
.nav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:.96rem;padding:4px 0;border-bottom:2px solid transparent}
.nav a[aria-current="page"]{border-color:var(--mint)}
.nav a:hover{background:none;border-color:var(--hi)}
.nav .nav__cta{border:2px solid var(--ink);padding:6px 14px}
@media (max-width:899px){
  .js .hdr__burger{display:block}
  .js .nav{display:none;width:100%;flex-direction:column;align-items:stretch;padding:8px 0 16px;gap:0}
  .js .nav.is-open{display:flex}
  .js .nav a{padding:10px 0;border-bottom:1px dashed var(--line)}
  .js .nav .nav__cta{margin-top:10px;text-align:center}
  .no-js .nav{margin-left:0;width:100%;padding-bottom:10px}
}

/* buttons */
.btn{display:inline-block;font-family:var(--sans);font-weight:700;font-size:1rem;line-height:1.2;text-decoration:none;text-align:center;padding:12px 22px;border-radius:999px;border:2px solid var(--ink);cursor:pointer;transition:transform .12s,box-shadow .12s}
.btn--go{background:var(--hi);color:var(--ink);box-shadow:var(--shadow)}
.btn--go:hover{background:var(--hi);color:var(--ink);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
.btn--ink{background:var(--ink);color:#fff}
.btn--ink:hover{background:var(--ink-2);color:#fff}
.btn--line{background:var(--paper-2);color:var(--ink)}
.btn--line:hover{background:var(--mint-soft);color:var(--ink)}
.btn--sm{font-size:.88rem;padding:8px 14px}

/* hero */
.hero{padding:40px 0 8px}
.eyebrow{font-family:var(--mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mint-ink);margin-bottom:.6em}
.lede{font-size:1.12rem;color:var(--ink-2);max-width:72ch}
.hero__pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:var(--paper-2);border:2px dashed var(--ink);border-radius:var(--r);padding:12px 16px;max-width:900px}
/* home hero banner (dark band so the image blends; rest of site stays paper) */
.hero--img{position:relative;background:var(--ink);color:#fff;padding:0;overflow:hidden;border-bottom:2px solid var(--ink)}
.hero__img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:75% center}
.hero__in{position:relative;padding-top:28px;padding-bottom:32px}
.hero--img h1{color:#fff}
.hero--img mark{background:var(--hi);color:var(--ink);border-radius:4px;padding:0 .15em}
.hero--img .eyebrow{color:var(--mint)}
.hero--img .lede{color:#dfe5f2}
.hero--img .hero__pick{color:var(--ink)}
@media (min-width:600px) and (max-width:899px){.hero__img{aspect-ratio:16/9}}
@media (min-width:900px){
  .hero--img{min-height:580px;display:flex;align-items:center}
  .hero__img{position:absolute;inset:0;height:100%;aspect-ratio:auto;object-position:right center}
  .hero--img::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(20,33,61,.96) 0%,rgba(20,33,61,.9) 38%,rgba(20,33,61,.55) 55%,rgba(20,33,61,0) 72%)}
  .hero__in{z-index:2;width:100%;padding-top:48px;padding-bottom:48px}
  .hero__in > *{max-width:640px}
}
.pin{font-family:var(--mono);font-size:.78rem;background:var(--ink);color:var(--hi);padding:3px 8px;border-radius:4px}

/* calculator */
.calc{background:var(--paper-2);border:2px solid var(--ink);border-radius:14px;box-shadow:6px 6px 0 var(--ink);margin:28px 0 40px;display:grid;grid-template-columns:1fr;overflow:hidden}
.calc__head{padding:20px 20px 4px;grid-column:1/-1}
.calc__head h1,.calc__head h2{margin-bottom:.3em}
.calc__sub{font-size:.93rem;color:var(--ink-3);margin:0}
.termsnote{display:inline-flex;gap:6px;align-items:center;font-size:.86rem;color:var(--ink-3)}
.calc__form{padding:16px 20px 20px;display:grid;gap:14px}
.calc__form fieldset{border:1.5px dashed var(--line);border-radius:var(--r);padding:12px 14px 14px;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px 12px}
.calc__form legend{font-family:var(--mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;padding:0 6px;color:var(--ink-2)}
.fld label{display:block;font-size:.85rem;font-weight:500;margin-bottom:3px}
.fld small{font-size:.75rem;color:var(--ink-3)}
.fld__in{display:flex;align-items:stretch;border:2px solid var(--ink);border-radius:8px;background:#fff;overflow:hidden}
.fld__in:focus-within{box-shadow:0 0 0 3px var(--hi)}
.fld__a{font-family:var(--mono);font-size:.85rem;padding:0 8px;display:flex;align-items:center;background:var(--mint-soft);color:var(--ink-2)}
.fld input,.fld select{font:600 1rem var(--mono);color:var(--ink);border:0;background:transparent;padding:8px;width:100%;min-width:0}
.fld input:focus,.fld select:focus{outline:none}
.fld--wide{max-width:520px}
.calc__out{background:var(--ink);color:#f3f1ea;padding:20px;display:grid;gap:16px;align-content:start}
.calc__out a{color:var(--hi)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{border:1.5px solid rgba(255,255,255,.22);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:2px}
.tile__k{font-size:.78rem;color:#c9cfdd;line-height:1.3}
.tile__v{font-family:var(--mono);font-weight:700;font-size:clamp(1.15rem,3vw,1.55rem);color:#fff}
.tile small{font-family:var(--mono);font-size:.75rem;color:#c9cfdd}
.tile--hi{background:var(--hi);border-color:var(--hi)}
.tile--hi .tile__k{color:var(--ink-2)}
.tile--hi .tile__v,.tile--hi .tile__v.pos,.tile--hi .tile__v.neg{color:var(--ink)}
.meter__top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-weight:700;margin-bottom:8px}
.meter__bar{position:relative;height:14px;border-radius:999px;background:linear-gradient(90deg,#d9475f,#ffd23f 50%,#2ec4b6);opacity:.95}
.meter__bar span{position:absolute;left:0;top:-4px;bottom:-4px;border-right:4px solid #fff;transition:width .25s}
.meter__bar i{position:absolute;top:-6px;bottom:-6px;width:0;border-left:2px dashed rgba(255,255,255,.7)}
.meter__ax{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.7rem;color:#c9cfdd;margin-top:6px}
.warn{background:#ffe1e6;color:#7a0f22;border-radius:8px;padding:8px 12px;font-weight:700;margin:0}
.work summary{cursor:pointer;font-family:var(--mono);font-size:.85rem;margin-bottom:6px}
.calc__out .st li{border-color:rgba(255,255,255,.15)}
.calc__out .st__f{background:rgba(255,255,255,.08);color:#e9edf6}
.calc__out .st__t{color:#fff}
.nojs{font-size:.85rem;color:#e9edf6;margin:0}
@media (min-width:980px){.calc{grid-template-columns:1.15fr 1fr}.calc__out{border-left:2px solid var(--ink)}}

/* score badge */
.score{display:inline-flex;align-items:baseline;gap:6px;font-family:var(--mono);font-weight:700;border-radius:6px;padding:2px 8px;border:1.5px solid currentColor;white-space:nowrap}
.score__n{font-size:1.05rem}.score__l{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}
.score--excellent{color:#0b6b62;background:#dff6f3}
.score--good{color:#215d2c;background:#e6f4dc}
.score--fair{color:#7a5300;background:#fff1c2}
.score--poor{color:#9b1c33;background:#ffe3e8}
.score--big{font-size:1.15rem;padding:4px 10px}
.score--big .score__n{font-size:1.5rem}

/* steps (worked working) */
.st{list-style:none;counter-reset:st;margin:0;padding:0}
.st li{counter-increment:st;display:grid;grid-template-columns:2em 1fr;grid-template-areas:"n t" "n f" "n r";column-gap:8px;padding:8px 0;border-top:1px dashed var(--line);font-size:.92rem}
.st li::before{content:counter(st);grid-area:n;font-family:var(--mono);font-weight:700;width:1.7em;height:1.7em;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--ink);font-size:.8rem}
.st__t{grid-area:t;font-weight:700}
.st__f{grid-area:f;font-family:var(--mono);font-size:.82rem;background:var(--mint-soft);padding:2px 6px;border-radius:4px;justify-self:start;word-break:break-word}
.st__r{grid-area:r;font-family:var(--mono);font-weight:700}
.work--static{background:var(--paper-2);border:2px solid var(--ink);border-radius:var(--r);padding:8px 16px;margin:0 0 1em;max-width:760px}
.work--static .st li:first-child{border-top:0}
@media (min-width:700px){.st li{grid-template-columns:2em minmax(150px,.8fr) 1.6fr auto;grid-template-areas:"n t f r";align-items:center}.st__r{text-align:right}}
.st--static{max-width:760px;background:var(--paper-2);border:2px solid var(--ink);border-radius:var(--r);padding:8px 16px;margin-bottom:1em}

/* sections */
.sec{margin:44px 0}
.prose{max-width:780px}
.prose ul,.prose ol{padding-left:1.3em}
.prose li{margin-bottom:.4em}
.cols2{display:grid;gap:28px}
@media (min-width:860px){.cols2{grid-template-columns:1fr 1fr;gap:44px}}
.ticks{list-style:none;padding:0;margin:0 0 1em}
.ticks li{position:relative;padding-left:30px;margin-bottom:.7em}
.ticks li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border:2px solid var(--ink);border-radius:4px;background:linear-gradient(135deg,transparent 45%,var(--mint) 45%,var(--mint) 60%,transparent 60%)}
ol.ticks{counter-reset:tk}
ol.ticks li{counter-increment:tk}
ol.ticks li::before{content:counter(tk);background:var(--hi);font:700 .72rem/14px var(--mono);text-align:center}

/* formula cards */
.fgrid,.team{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin:0 0 1.2em}
.fcard{background:var(--paper-2);border:2px solid var(--ink);border-left:8px solid var(--mint);border-radius:var(--r);padding:14px 16px;margin:0 0 1em}
.fgrid .fcard,.team .fcard{margin:0}
.fcard__t{font-family:var(--mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:0 0 4px}
.fcard__f{font-family:var(--mono);font-weight:700;font-size:1.02rem;margin:0 0 6px;background:linear-gradient(transparent 62%,var(--hi-soft) 62%);display:inline;line-height:1.7}
.fcard__n{font-size:.9rem;color:var(--ink-2);margin:6px 0 0}

/* tables */
.tbl-wrap{margin:0 0 1em}
.tbl{width:100%;border-collapse:separate;border-spacing:0;background:var(--paper-2);border:2px solid var(--ink);border-radius:var(--r);overflow:hidden;font-size:.94rem}
.tbl caption{caption-side:bottom;text-align:left;font-size:.82rem;color:var(--ink-3);padding:8px 2px}
.tbl th{background:var(--ink);color:#fff;text-align:left;font-weight:700;font-size:.82rem;padding:10px 12px}
.tbl td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:middle}
.tbl--kv th{background:var(--mint-soft);color:var(--ink);width:38%;border-top:1px solid var(--line)}
.tbl--kv tr:first-child th,.tbl--kv tr:first-child td{border-top:0}
.tbl--rank .is-top td{background:rgba(255,210,63,.22)}
.t-rank span{font-family:var(--mono);font-weight:700;font-size:1.1rem}
.t-cas a{display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);text-decoration:none}
.t-ev{font-weight:700;font-size:1.05rem}
.mono{flex:none}
@media (max-width:759px){
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tbl{border:0;background:none;overflow:visible}
  .tbl tr{background:var(--paper-2);border:2px solid var(--ink);border-radius:var(--r);margin-bottom:10px;padding:6px 12px}
  .tbl td{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px dashed var(--line);padding:7px 0;text-align:right}
  .tbl td:first-child{border-top:0}
  .tbl td::before{content:attr(data-label);font-weight:700;font-size:.8rem;color:var(--ink-3);text-align:left}
  .tbl td[data-label=""]::before{content:none}
  .tbl .t-cta{justify-content:stretch}.tbl .t-cta .btn{width:100%}
  .tbl--kv tr{display:grid;padding:8px 12px}
  .tbl--kv th{display:block;width:auto;background:none;padding:0;border:0;font-size:.8rem;color:var(--ink-3)}
  .tbl--kv td{display:block;text-align:left;border:0;padding:2px 0 0}
  .tbl--kv td::before{content:none}
}

/* cards */
.cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{display:flex;flex-direction:column;gap:4px;background:var(--paper-2);border:2px solid var(--ink);border-radius:var(--r);padding:16px;text-decoration:none;color:var(--ink);transition:transform .12s,box-shadow .12s}
.card:hover{background:var(--paper-2);color:var(--ink);transform:translate(-2px,-2px);box-shadow:var(--shadow)}
.card strong{font-size:1.08rem}
.card span:last-child{font-size:.92rem;color:var(--ink-2)}
.card__k{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mint-ink)}

/* page header */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px;padding:0;margin:18px 0 0;font-size:.85rem;font-family:var(--mono)}
.crumbs li+li::before{content:"→";margin-right:4px;color:var(--ink-3)}
.crumbs a{color:var(--ink-2)}
.phead{padding:22px 0 6px}
.phead__id{display:flex;gap:16px;align-items:flex-start}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:18px 0}
.facts>div{background:var(--paper-2);border:2px solid var(--ink);border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.facts span{font-size:.78rem;color:var(--ink-3)}
.facts strong{font-family:var(--mono);font-size:1.15rem}
.phead__cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.pc{list-style:none;padding:0;margin:0}
.pc li{padding:8px 0 8px 30px;border-top:1px dashed var(--line);position:relative}
.pc li::before{position:absolute;left:0;font-family:var(--mono);font-weight:700;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.9rem;top:9px}
.pc--pro li::before{content:"+";background:var(--mint);color:var(--ink)}
.pc--con li::before{content:"−";background:#ffd0d8;color:var(--neg)}
.verdict{background:var(--hi);border:2px solid var(--ink);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);max-width:820px}
.callout{background:var(--mint-soft);border:2px solid var(--ink);border-radius:var(--r);padding:18px;margin:32px 0;max-width:780px}
.defs dt{font-family:var(--mono);font-weight:700;margin-top:14px}
.defs dd{margin:2px 0 0;padding-left:14px;border-left:3px solid var(--mint);max-width:75ch}

/* faq */
.faq__i{background:var(--paper-2);border:2px solid var(--ink);border-radius:var(--r);margin-bottom:10px;max-width:880px}
.faq__i summary{cursor:pointer;padding:12px 16px;list-style:none;display:flex;justify-content:space-between;gap:10px;align-items:center}
.faq__i summary::-webkit-details-marker{display:none}
.faq__i summary::after{content:"+";font:700 1.3rem var(--mono)}
.faq__i[open] summary::after{content:"−"}
.faq__i summary h3{margin:0;font-size:1.02rem}
.faq__i p{padding:0 16px 14px;margin:0;color:var(--ink-2)}

/* related */
.related{border-top:2px solid var(--ink);margin:48px 0 32px;padding-top:18px}
.related h2{font-size:1.1rem;font-family:var(--mono)}
.related ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.related a{display:flex;justify-content:space-between;gap:8px;align-items:baseline;padding:8px 12px;border:1.5px dashed var(--ink);border-radius:8px;text-decoration:none;color:var(--ink);background:var(--paper-2)}
.related a:hover{border-style:solid;background:var(--hi-soft)}
.related small{font-family:var(--mono);font-size:.7rem;color:var(--ink-3);white-space:nowrap}

/* go / 404 */
.goto{text-align:center;padding:64px 0 40px;max-width:640px;margin:0 auto}
.goto__calc{display:inline-flex;gap:10px;font:700 1.4rem var(--mono);margin-bottom:18px}
.goto__calc span{background:var(--paper-2);border:2px solid var(--ink);border-radius:8px;padding:6px 12px}
.goto__calc span:last-child{background:var(--hi)}
@media (prefers-reduced-motion:no-preference){.goto__calc span{animation:pulse 1.2s ease-in-out infinite alternate}.goto__calc span:nth-child(2){animation-delay:.2s}.goto__calc span:nth-child(3){animation-delay:.4s}}
@keyframes pulse{to{transform:translateY(-4px)}}

/* footer */
.ftr{background:var(--ink);color:#e6e9f1;margin-top:56px;padding:40px 0 24px;font-size:.93rem}
.ftr a{color:#fff}
.ftr a:hover{color:var(--ink);background:var(--hi)}
.ftr .logo,.ftr .logo:hover{color:#fff;background:none}
.ftr__grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.ftr__brand{grid-column:1/-1;max-width:420px}
@media (min-width:980px){.ftr__grid{grid-template-columns:1.5fr repeat(4,1fr)}.ftr__brand{grid-column:auto}}
.ftr h2{font-family:var(--mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mint)}
.ftr ul{list-style:none;padding:0;margin:0}
.ftr li{margin-bottom:6px}
.ftr__badges{display:flex;gap:10px;align-items:center}
.b18{font:700 .9rem var(--mono);border:2px solid var(--hi);color:var(--hi);border-radius:50%;width:40px;height:40px;display:grid;place-items:center}
.ftr__legal{border-top:1px solid rgba(255,255,255,.2);margin-top:28px;padding-top:18px;font-size:.84rem;color:#c9cfdd}

/* free games */
.ggrid{list-style:none;padding:0;margin:0 0 1em;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.gcard{display:flex;flex-direction:column;height:100%;background:var(--paper-2);border:2px solid var(--ink);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .12s,box-shadow .12s}
.gcard:hover{background:var(--paper-2);color:var(--ink);transform:translate(-2px,-2px);box-shadow:var(--shadow)}
.gcard img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-bottom:2px solid var(--ink);background:var(--mint-soft)}
.gcard__b{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px;flex:1}
.gcard__b strong{font-size:1rem;line-height:1.25}
.gcard__p{font-size:.82rem;color:var(--ink-3)}
.gcard__m{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.8rem}
.gcard__c{margin-top:auto;padding-top:6px;border-top:1px dashed var(--line);font-size:.8rem;color:var(--ink-2)}
.gcard__c b{color:var(--neg)}
.vtag{font:700 .68rem/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;padding:3px 6px;border-radius:4px;border:1.5px solid currentColor}
.vtag--low{color:#215d2c;background:#e6f4dc}.vtag--medium{color:#7a5300;background:#fff1c2}.vtag--high{color:#9b1c33;background:#ffe3e8}
.gfilter{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:0 0 14px}
.gfilter label{font:700 .8rem var(--mono);text-transform:uppercase;letter-spacing:.05em}
.gfilter input,.gfilter select{font:600 .95rem var(--sans);color:var(--ink);border:2px solid var(--ink);border-radius:8px;background:#fff;padding:7px 10px;min-width:0}
.gfilter input{flex:1 1 200px;max-width:320px}
.gfilter__n{font:.82rem var(--mono);color:var(--ink-3)}
.no-js .gfilter{display:none}
.hubnav{display:grid;gap:8px;margin:0 0 24px;padding:12px 14px;background:var(--paper-2);border:2px dashed var(--ink);border-radius:var(--r)}
.hubnav div{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}
.hubnav__k{font:700 .74rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mint-ink);min-width:110px}
.hubnav a{font-size:.9rem}
.hubnav a[aria-current="page"]{color:var(--ink);font-weight:700;background:var(--hi-soft);text-decoration:none}
.gstats .gstats__t{font-size:.95rem;font-family:var(--sans)}
.ghub__intro{margin-top:6px}
.pager{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0;font-family:var(--mono)}
.pager a,.pager span{border:2px solid var(--ink);border-radius:8px;padding:4px 12px;text-decoration:none;color:var(--ink);background:var(--paper-2)}
.pager span[aria-current]{background:var(--ink);color:#fff}
.pager a:hover{background:var(--hi)}
.demo{margin:18px 0 6px;max-width:880px}
.demo__box{position:relative;aspect-ratio:16/9;width:100%;border:2px solid var(--ink);border-radius:14px;overflow:hidden;background:var(--ink);box-shadow:6px 6px 0 var(--ink)}
.demo__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.demo__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;gap:8px;align-items:center;font-size:1.05rem;white-space:nowrap}
.demo__play:hover{transform:translate(calc(-50% - 1px),calc(-50% - 1px))}
.demo__frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.demo__nojs{position:absolute;left:12px;right:12px;bottom:10px;margin:0;color:#fff;font-size:.85rem;text-align:center}
.no-js .demo__play{display:none}
.srcredit{font-size:.78rem;color:var(--ink-3);margin:12px 0 0}
.srcredit a{color:var(--ink-3)}
.wcost{margin-top:20px}
.wcost__l{padding:16px 20px 20px}
.wcost__l .tbl td{text-align:right}
.gcta{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;background:var(--paper-2);border:2px solid var(--ink);border-left:8px solid var(--hi);border-radius:var(--r);padding:16px 18px;margin:36px 0;max-width:880px}
.gcta__t{font-weight:700;font-size:1.15rem;margin:0 0 4px}
.gcta div{flex:1 1 280px}.gcta .small{margin:0}
@media (max-width:759px){.wcost__l .tbl--kv td{text-align:left}.demo__box{box-shadow:4px 4px 0 var(--ink)}}
@media (max-width:480px){.ggrid{grid-template-columns:1fr 1fr;gap:10px}.gcard__b{padding:8px 9px 10px}.gcard__b strong{font-size:.9rem}.hubnav__k{min-width:0;width:100%}.gcta .btn{width:100%}}

@media (max-width:480px){body{font-size:16px}.tiles{grid-template-columns:1fr}.calc{box-shadow:4px 4px 0 var(--ink)}.calc__form fieldset{grid-template-columns:1fr 1fr}.phead__id .mono{width:48px;height:48px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
