/* BindTrue public pages (server-rendered by src/pages/*: exercises, programs, challenges, tools, about), loaded after
   /base.css (colour tokens for light and dark, the body). Mobile first (375 px), no horizontal scroll.
   Brand fonts: the Latin files of public/css/brand.css (same URLs, so the browser shares them with the landing) with
   its metric-matched fallbacks, so a late font swap does not re-wrap the headlines. */
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmf-HYoEoey.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmf-HYoEoey.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmf-HYoEoey.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmf-HYoEoey.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwu8ZfvRIkSQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwu8ZfvRIkSQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwu8ZfvRIkSQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest Fallback";font-weight:400;src:local("Arial"),local("ArialMT");size-adjust:106%;ascent-override:91.5%;descent-override:28.8%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest Fallback";font-weight:700;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:100.5%;ascent-override:96.5%;descent-override:30.3%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Unbounded Fallback";font-weight:100 900;src:local("Arial Black"),local("Arial-Black");size-adjust:111%;ascent-override:89.6%;descent-override:22.1%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Unbounded Fallback B";font-weight:100 900;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:127%;ascent-override:78.3%;descent-override:19.3%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

.pub{
  --display:"Unbounded","Unbounded Fallback","Unbounded Fallback B","Arial Black",system-ui,sans-serif;
  --sans:"Onest","Onest Fallback",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-family:var(--sans);overflow-wrap:break-word;
}
html:has(body.pub){scroll-padding-top:calc(118px + env(safe-area-inset-top,0px))}
@media (min-width:760px){html:has(body.pub){scroll-padding-top:calc(84px + env(safe-area-inset-top,0px))}}
/* anything the scripts show or hide: [hidden] wins over every display rule below */
.pub [hidden]{display:none!important}
.pub p{margin:0}
.pub p+p{margin-top:10px}
.pub fieldset{border:0;margin:0;padding:0;min-width:0}
.pub legend{padding:0}
.pub-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.pub-wrap{max-width:1120px;margin-inline:auto;padding-inline:16px}
@media (min-width:720px){.pub-wrap{padding-inline:28px}}
.pub-narrow{max-width:800px}
.pub-main{display:block;padding-bottom:24px}
.pub-main:focus{outline:none}

/* buttons (the app's .btn, app.css is not loaded here) */
.pub .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px 18px;font:650 15.5px/1.2 var(--sans);cursor:pointer;background:var(--acc);color:var(--acc-ink);min-height:46px;text-decoration:none;text-align:center;-webkit-tap-highlight-color:transparent;transition:background-color .15s}
.pub .btn:hover{background:color-mix(in srgb,var(--acc) 88%,var(--ink))}
/* the second button ("See the week", "Clear filters"); not .sec, which base.css uses for app sections */
.pub .btn.pub-alt{background:var(--surface-2);color:var(--ink)}
.pub .btn.pub-alt:hover{background:color-mix(in srgb,var(--surface-2) 86%,var(--ink))}

/* skip link: first stop for keyboard users */
.pub-skip{position:fixed;left:12px;top:-100px;z-index:40;padding:10px 16px;border-radius:10px;background:var(--ink);color:var(--bg);font:600 15px/1.2 var(--sans);text-decoration:none}
.pub-skip:focus{top:calc(10px + env(safe-area-inset-top,0px))}

/* ---------- header: logo + "Start free", the four sections below (one row from 760px) ---------- */
.pub-top{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.pub-top .pub-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"logo cta" "nav nav";align-items:center;column-gap:10px;padding-top:8px}
.pub .logo{display:inline-flex;align-items:center;white-space:nowrap;text-decoration:none;font:600 18px/1 var(--display);letter-spacing:-.02em;color:var(--ink)}
.pub .logo::before{content:"";flex:none;width:1.3em;height:1.3em;margin-right:.42em;background:var(--acc);-webkit-mask:url(/logo-mark.svg) center/contain no-repeat;mask:url(/logo-mark.svg) center/contain no-repeat}
.pub .logo i{font-style:normal;color:var(--acc)}
.pub-logo{grid-area:logo;min-height:44px;justify-self:start}
.pub-cta{grid-area:cta}
.pub-top .btn{min-height:40px;padding:8px 14px;font-size:14.5px;border-radius:11px;white-space:nowrap}
.pub-nav{grid-area:nav;display:flex;justify-content:space-between;margin-inline:-8px}
.pub-nav a{display:block;padding:12px 8px 11px;color:var(--ink-2);text-decoration:none;font:500 14.5px/1 var(--sans);border-bottom:2px solid transparent;white-space:nowrap}
.pub-nav a:hover{color:var(--ink)}
.pub-nav a[aria-current]{color:var(--ink);border-bottom-color:var(--acc)}
@media (max-width:359px){.pub-nav a{padding-inline:5px;font-size:14px}}
@media (min-width:760px){
  .pub-top .pub-wrap{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"logo nav cta";min-height:64px;padding-top:0}
  .pub-logo{font-size:19px}
  .pub-nav{justify-content:center;gap:4px;margin:0}
  .pub-nav a{padding:23px 12px 21px}
}

/* breadcrumb */
.pub-crumbs ol{display:flex;flex-wrap:wrap;margin:14px 0 0;padding:0;list-style:none;font-size:13.5px;line-height:1.4;color:var(--ink-3)}
.pub-crumbs li+li::before{content:"›";margin:0 8px;color:var(--ink-3)}
.pub-crumbs a{color:var(--ink-2);text-decoration:none}
.pub-crumbs a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* ---------- type ---------- */
.pub-head{padding-block:18px 4px}
.pub h1{font:700 clamp(30px,7.6vw,54px)/1.04 var(--display);letter-spacing:-.03em;margin:10px 0 0;overflow-wrap:anywhere;hyphens:manual}
.pub h2{font:600 clamp(21px,4.6vw,28px)/1.18 var(--display);letter-spacing:-.02em;margin:0 0 12px}
.pub h3{font:650 17px/1.3 var(--sans);margin:18px 0 8px}
.pub-eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 12px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.pub-eyebrow::before{content:"";flex:none;width:20px;height:3px;border-radius:2px;background:var(--acc)}
.pub-lead{font:400 clamp(17px,2.2vw,19px)/1.55 var(--sans);color:var(--ink-2);margin-top:12px;max-width:42em;text-wrap:pretty}
.pub-sec{margin-top:40px}
.pub-sec>p{max-width:72ch}
.pub-note{font-size:14px;line-height:1.5;color:var(--ink-3);margin-top:12px}
.pub-n{font:500 .6em/1 var(--sans);color:var(--ink-3);vertical-align:middle}
.pub-count{font-size:14px;color:var(--ink-2);margin-top:8px}
.pub-more{margin-top:24px}
.pub a{text-underline-offset:3px}

/* chips: muscles, at-a-glance facts, hub links */
.pub-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:16px 0 0;padding:0}
.pub-chips a,.pub-chips-plain li{display:inline-flex;align-items:center;min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font:500 14px/1.2 var(--sans)}
.pub-chips a:hover{border-color:var(--acc-line);color:var(--acc)}
.pub-chips a[aria-current]{background:var(--acc-soft);border-color:var(--acc)}
.pub-chips-plain li{min-height:34px;background:var(--surface-2);border-color:transparent;color:var(--ink-2)}
.pub-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}

/* lists */
.pub-ticks{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px;max-width:72ch}
.pub-ticks li{position:relative;padding-left:24px}
.pub-ticks li::before{content:"";position:absolute;left:4px;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--acc)}
.pub-steps{margin:10px 0 0;padding-left:22px;display:grid;gap:10px;max-width:72ch}
.pub-steps li::marker{font-weight:700;color:var(--acc)}
.pub-ticks+p,.pub-steps+p,.pub-dl+p,.pub-links+p{margin-top:14px}
.pub-links{list-style:none;margin:8px 0 0;padding:0;max-width:72ch}
.pub-links li{padding:11px 0;border-bottom:1px solid var(--line)}
.pub-links a{font-weight:600}
.pub-links span{color:var(--ink-3);font-size:14px}
.pub-cues{counter-reset:cue;list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pub-cues li{counter-increment:cue;position:relative;min-height:52px;padding:13px 14px 13px 52px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.pub-cues li::before{content:counter(cue);position:absolute;left:12px;top:12px;width:28px;height:28px;border-radius:50%;background:var(--acc);color:var(--acc-ink);display:grid;place-items:center;font:700 14px/1 var(--sans)}
.pub-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0 0}
.pub-dl>div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}
.pub-dl dt{font-size:12.5px;color:var(--ink-3)}
.pub-dl dd{margin:2px 0 0;font:650 16px/1.35 var(--sans)}
.pub-live{margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--acc-soft);font-size:15px}
.pub-video{margin-top:14px}
.pub-video a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}

/* ---------- cards: exercises, programs, challenges, tools ---------- */
.pub-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;margin:16px 0 0;padding:0}
@media (min-width:720px){.pub-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}
@media (min-width:1000px){.pub-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pub-cards-sm{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:720px){.pub-cards-sm{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1000px){.pub-cards-sm{grid-template-columns:repeat(5,minmax(0,1fr))}}
.pub-cards-prog,.pub-cards-ch,.pub-cards-tools{grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.pub-cards-prog,.pub-cards-ch,.pub-cards-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.pub-cards-prog,.pub-cards-ch,.pub-cards-tools{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pub-card>a{display:flex;flex-direction:column;height:100%;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;color:var(--ink);text-decoration:none;transition:border-color .15s,box-shadow .15s}
.pub-card>a:hover{border-color:var(--acc-line);box-shadow:var(--shadow)}
.pub-thumb{position:relative;display:block;aspect-ratio:4/3;background:var(--tile);overflow:hidden}
.pub-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.pub-thumb .pub-picto{display:block;width:100%;height:100%}
.pub-thumb-b{display:grid;place-items:center}
.pub-badge{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--surface);color:var(--acc);box-shadow:0 0 0 6px color-mix(in srgb,var(--acc) 10%,transparent)}
.pub-badge svg{width:36px;height:36px}
.pub-card-b{display:grid;gap:4px;padding:10px 12px 12px;align-content:start}
.pub-card-b b{font:650 15px/1.28 var(--sans)}
.pub-card-b span{font-size:14px;line-height:1.45;color:var(--ink-2)}
.pub-card-b small{font-size:12.5px;line-height:1.4;color:var(--ink-3)}
.pub-prog .pub-card-b b,.pub-ch .pub-card-b b,.pub-toolcard .pub-card-b b{font:600 18px/1.25 var(--display);letter-spacing:-.01em}
.pub-ch .pub-card-b,.pub-toolcard .pub-card-b{gap:8px;padding:16px}
.pub-toolcard .pub-card-b b::after{content:" →";color:var(--acc)}
.pub-tag{position:absolute;left:8px;top:8px;background:var(--iron);color:var(--chalk);font:650 11px/1 var(--sans);letter-spacing:.04em;padding:6px 9px;border-radius:999px}

/* filters (shown by pages.js) */
.pub-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin-top:12px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
@media (min-width:880px){.pub-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.pub-filters:has(>.pub-fld:nth-of-type(3):last-of-type){grid-template-columns:repeat(3,minmax(0,1fr))}}
.pub-filters>p,.pub-filters>button{grid-column:1/-1}
.pub-filters .pub-count{margin:0}
.pub-filters .btn{justify-self:start;min-height:40px}
.pub-empty{font-size:14.5px;color:var(--ink-2)}
.pub-browse h3{font:600 13px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 0}
.pub-browse h3+.pub-chips{margin-top:10px}

/* ---------- one exercise ---------- */
.pub-ex-grid{display:grid;gap:24px;margin-top:24px}
@media (min-width:880px){.pub-ex-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:40px}.pub-ex-side{position:sticky;top:88px}}
.pub-ex-body .pub-sec:first-child{margin-top:0}
.pub-ex-media{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
/* one picture: full width; three: the first one big, two below */
.pub-ex-media>:only-child,.pub-ex-media>:first-child:nth-last-child(3){grid-column:1/-1}
.pub-meta{margin-top:14px;font-size:15px;color:var(--ink-2)}
.pub-shot{margin:0;background:var(--tile);border-radius:16px;overflow:hidden}
.pub-shot img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.pub-shot .pub-picto{display:block;width:100%;height:auto;aspect-ratio:4/3}
.pub-shot figcaption{font-size:12.5px;line-height:1.4;color:var(--ink-3);padding:4px 12px 10px}
.pub-shot-b{display:grid;place-items:center;align-content:center;gap:10px;aspect-ratio:4/3}
.pub-safety{margin-top:24px}

/* ---------- one program ---------- */
.pub-head-media{display:grid;gap:22px}
@media (min-width:880px){.pub-head-media{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:center;gap:44px}}
.pub-day{margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 14px 12px}
@media (min-width:720px){.pub-day{padding:18px 20px 16px}}
.pub .pub-day h3{margin:0;font:600 18px/1.3 var(--display);letter-spacing:-.01em}
.pub-wd{display:block;font:650 11.5px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--acc);margin-bottom:6px}
.pub-focus{font-size:14px;color:var(--ink-3);margin-top:4px}
.pub-tbl-wrap{max-width:100%}
.pub-tbl{width:100%;border-collapse:collapse;margin-top:10px;font-size:14.5px;table-layout:fixed}
.pub-tbl th,.pub-tbl td{text-align:left;padding:10px 8px 10px 0;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.pub-tbl thead th{font:600 12.5px/1.2 var(--sans);color:var(--ink-3);border-top:0;padding-top:4px}
.pub-tbl thead th:first-child{width:54%}
.pub-tbl thead th:nth-child(2){width:26%}
.pub-tbl-2 thead th:first-child{width:72%}
.pub-tbl-3 thead th:first-child{width:30%}
.pub-tbl tbody th{font-weight:600}
.pub-tbl tbody th small{display:block;font-weight:400;font-size:13px;line-height:1.45;color:var(--ink-3);margin-top:4px;overflow-wrap:break-word}
.pub-tbl tr.on{background:var(--acc-soft)}
.pub-tbl tr.on th,.pub-tbl tr.on td{font-weight:700}
.pub-ss{display:inline-block;font:700 11px/1 var(--sans);padding:3px 5px;border-radius:5px;background:var(--acc-soft);color:var(--acc);vertical-align:1px}
.pub-fin{margin-top:10px;font-size:14px;color:var(--ink-2)}

/* ---------- one challenge ---------- */
.pub .pub-week{font:600 12.5px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 0}
.pub-days{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}
.pub-days li{display:grid;gap:2px;align-content:start;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}
.pub-days span{font-size:12px;color:var(--ink-3)}
.pub-days b{font:650 14.5px/1.25 var(--sans)}
.pub-days li.rest{background:transparent;border-style:dashed}
.pub-days li.rest b{font-weight:500;color:var(--ink-3)}

/* ---------- calculators ---------- */
.pub-tool{display:grid;gap:16px;margin-top:22px}
@media (min-width:900px){.pub-tool{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start;gap:28px}}
.pub-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px}
@media (min-width:720px){.pub-form{padding:20px}}
.pub-form>*{grid-column:1/-1}
.pub-form>.pub-fld:not(.pub-w2){grid-column:auto}
.pub-grp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
.pub-fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.pub-fld>label,.pub-fld>legend,.pub-seg legend{font:600 13.5px/1.3 var(--sans);color:var(--ink-2)}
.pub-fld>legend{margin-bottom:6px}
.pub-seg legend{margin-bottom:6px}
.pub-in{display:flex;align-items:center;gap:6px}
.pub-in input{flex:1 1 0;min-width:0}
.pub-in>span{flex:none;color:var(--ink-3);font-size:14px}
.pub input[type="number"],.pub select{font:500 16px/1.2 var(--sans);color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:11px 12px;width:100%;min-width:0;min-height:46px}
.pub select{padding-right:8px}
.pub input[type="number"]:focus-visible,.pub select:focus-visible{outline:none;border-color:var(--acc);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 22%,transparent)}
.pub input[aria-invalid="true"]{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}
.pub-hint{font-size:12.5px;color:var(--ink-3)}
.pub-fld:has([aria-invalid="true"]) .pub-hint{color:var(--bad)}
.pub-seg>div{display:flex;gap:6px}
.pub-seg label{position:relative;flex:1 1 0;min-width:0;display:flex}
.pub-seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.pub-seg span{flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:600 14.5px/1.25 var(--sans);color:var(--ink-2);text-align:center}
.pub-seg input:checked+span{border-color:var(--acc);background:var(--acc-soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--acc)}
.pub-seg input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
.pub-seg-col>div{flex-direction:column}
.pub-seg-col span{justify-content:flex-start;text-align:left}
.pub-go{justify-self:start;min-width:160px}
.pub-result{display:grid;gap:12px;align-content:start;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px}
@media (min-width:900px){.pub-result{position:sticky;top:88px;padding:22px}}
.pub-result:focus{outline:none}
.pub-result:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.pub .pub-result h2{font:600 12.5px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0}
.pub-result p+p{margin-top:0}
.pub-result>div{display:grid;gap:10px}
.pub-big{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.pub-big b{font:700 clamp(40px,11vw,58px)/1 var(--display);letter-spacing:-.035em;color:var(--acc);font-variant-numeric:tabular-nums}
.pub-big span{font-size:15.5px;color:var(--ink-2)}
.pub-mini{width:100%;border-collapse:collapse;font-size:15px}
.pub-mini caption{text-align:left;font:600 13.5px/1.3 var(--sans);color:var(--ink-3);padding-bottom:4px}
.pub-mini th,.pub-mini td{padding:9px 0;border-top:1px solid var(--line);text-align:left;font-weight:500}
.pub-mini td{text-align:right;font-weight:650;white-space:nowrap;padding-left:10px}
.pub-macros{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pub-macros-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pub-macros li{display:grid;gap:2px;align-content:start;background:var(--surface-2);border-radius:12px;padding:10px;min-width:0}
.pub-macros li>span{font-size:12.5px;color:var(--ink-3)}
.pub-macros b{font:650 20px/1.2 var(--sans);font-variant-numeric:tabular-nums}
.pub-macros small{font-size:12px;line-height:1.35;color:var(--ink-3)}
.pub-warn,.pub-ok{padding:10px 12px;border-radius:10px;font-size:14.5px;line-height:1.45}
.pub-warn{background:color-mix(in srgb,var(--warn) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 42%,var(--line))}
.pub-ok{background:color-mix(in srgb,var(--ok) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--ok) 36%,var(--line))}
.pub-next{font-size:14.5px}
.pub-sources ol{margin:8px 0 0;padding-left:20px;display:grid;gap:8px;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.pub-sources a{overflow-wrap:anywhere}

/* call to action: an iron panel, the same in light and dark */
.pub-ctabox{display:grid;gap:14px;margin-top:40px;padding:20px;border-radius:18px;background:var(--iron);color:var(--chalk)}
.pub-ctabox-t{font:600 20px/1.25 var(--display);letter-spacing:-.01em}
.pub-ctabox p+p{margin-top:6px;color:var(--chalk-2)}
.pub .pub-ctabox .btn{justify-self:start;background:var(--on-iron-acc);color:#0E1012}
.pub .pub-ctabox .btn:hover{background:color-mix(in srgb,var(--on-iron-acc) 86%,#fff)}
@media (min-width:720px){.pub-ctabox{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:26px 28px;gap:24px}}

/* 404 */
.pub-404{padding-block:24px 8px}

/* ---------- footer ---------- */
.pub-foot{margin-top:48px;border-top:1px solid var(--line);padding-block:30px calc(40px + env(safe-area-inset-bottom,0px));font-size:13.5px;line-height:1.5;color:var(--ink-3)}
.pub-foot .pub-wrap{display:grid;gap:10px}
.pub-foot-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;margin-bottom:6px}
.pub-foot .logo{font-size:17px;margin-right:auto;min-height:44px}
.pub-foot nav{display:flex;flex-wrap:wrap;gap:0 16px}
.pub-foot nav a{display:inline-block;padding-block:9px;color:var(--ink-2);font:500 14px/1.3 var(--sans);text-decoration:none}
.pub-foot nav a:hover{color:var(--ink);text-decoration:underline}
.pub-foot p{max-width:78ch}

@media (prefers-reduced-motion:reduce){.pub *,.pub *::before{transition:none!important}}
