.home-v2 .facts2 { list-style: none; margin: 22px 0 26px; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.home-v2 .facts2 a { display: block; height: 100%; padding: 12px 14px; background: var(--paper-raised); border: 1px solid var(--brd); text-decoration: none; color: var(--ink); }
.home-v2 .facts2 a:hover { border-color: var(--brass); }
.home-v2 .facts2 b { display: block; font-size: 14px; }
.home-v2 .facts2 span { display: block; margin-top: 3px; font-size: 13px; color: var(--ink-dim); }
@media (max-width: 860px) { .home-v2 .facts2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-v2 .facts2 li:last-child { grid-column: 1 / -1; } }
/* ART/GTO taste mock-up for the site app: TypeSafe's structure in ArtGTO's colours. Rules: /DESIGN.md.
   Loads right after the app's inline stylesheet on every entry page. Generated by tools/build_taste_override.py. */
:root {
  --claim: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --serif: var(--claim);                            /* the app's serif token now points at the claim face */
  --ease-link: cubic-bezier(.12, .23, .5, 1);
  --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
}
body { letter-spacing: .01em; }

/* claim-sized headings: big type tight */
h1 { font-family: var(--claim) !important; font-style: normal !important; font-weight: 600 !important; letter-spacing: -.03em !important; line-height: .9 !important; }
h1 em, h1 i, h2 em, h2 i, h3 em, h3 i { font-style: normal !important; }
h2 { font-family: var(--claim) !important; font-style: normal !important; font-weight: 600 !important; letter-spacing: -.02em !important; line-height: .95 !important; }
h3 { font-family: var(--claim) !important; font-style: normal !important; font-weight: 600 !important; letter-spacing: -.01em; }

/* links and hovers: brass means "you're touching it" */
a, button { transition: color .5s var(--ease-link), background-color .5s var(--ease-link), border-color .5s var(--ease-link), transform .25s var(--ease-spring); }
.nav-tabs a:hover, a:hover { color: var(--brass-text); }

/* top bar: flat paper, square pills */
.topbar { border-bottom: 0 !important; }
.nav-tabs > a, .nav-tabs > .nav-item > a { background: var(--paper-inset); padding: 9px 10px; line-height: 1; font-family: var(--claim); font-size: 13px; letter-spacing: .02em; }
.nav-tabs > a:hover, .nav-tabs > .nav-item > a:hover { background: var(--brass); color: var(--paper-raised) !important; }
.nav-tabs { gap: 5px !important; }

/* any button-like control: square ink block, brass on hover */
[class*="btn"]:not(.btn-discord):not([class*="ghost"]):not([class*="outline"]), .seohome-cta {
  border-radius: 0 !important; box-shadow: none !important; }
[class*="btn"]:hover, .seohome-cta:hover { background-color: var(--brass) !important; border-color: var(--brass) !important; color: var(--paper-raised) !important; transform: translateY(-1px); }

/* cards become windows: no rounding, no shadow, a 3 px brass-grey frame */
[class*="card"]:not([class*="try-card"]) { border-radius: 0 !important; box-shadow: none !important; }

/* small caps labels read as solver output */
[class*="eyebrow"], [class*="kicker"], [class*="label"]:not(label) { font-family: var(--mono) !important; letter-spacing: .08em; }

/* two voices: prose in the claim face, the app's mono stays for labels, data, code and controls */
main p, main li, main dd, main blockquote, .seohome p { font-family: var(--claim); font-size: 16px; line-height: 1.5; letter-spacing: .01em; }
.faq-item .a, main [class*="lede"], main [class$="-desc"], main [class$="-body"], main [class$="-text"], main [class$="-sub"] {
  font-family: var(--claim) !important; font-size: 16px; line-height: 1.5; letter-spacing: .01em; }
main table, main table p, main code, main pre, main kbd { font-family: var(--mono); }

/* page titles are the claim */
.ph-title, .seohome h1 { font-size: clamp(40px, 5.6vw, 88px) !important; max-width: 16ch; margin-bottom: .35em !important; }
.page-head p { font-size: clamp(17px, 1.7vw, 21px) !important; line-height: 1.35; max-width: 58ch; color: var(--ink-dim); }

/* fields: the waitlist ask on felt, the footer on ink */
section.waitlist { background: var(--felt) !important; color: var(--paper) !important; border: 0 !important; }
section.waitlist h2, section.waitlist h3 { color: var(--paper-raised) !important; }
section.waitlist p, section.waitlist small, section.waitlist span { color: var(--paper-inset) !important; }
section.waitlist a, section.waitlist button { background: var(--paper-raised) !important; color: var(--ink) !important; border-color: var(--paper-raised) !important; }
section.waitlist a:hover, section.waitlist button:hover { background: var(--brass) !important; color: var(--paper-raised) !important; }
footer.footer { background: var(--ink) !important; color: var(--paper-inset) !important; border: 0 !important; }
footer.footer * { color: inherit; border-color: rgba(251, 247, 234, .14) !important; }
footer.footer a { color: var(--paper-raised) !important; }
footer.footer a:hover { color: var(--brass-bright) !important; }
footer.footer h4, footer.footer h5, footer.footer [class*="head"], footer.footer [class*="title"] { color: var(--brass-bright) !important; }

/* side rail: square pills like the top bar */
.siderail a { border-radius: 0 !important; }
.siderail a:hover { background: var(--brass) !important; color: var(--paper-raised) !important; }

/* ── STRUCTURE (2026-10-28): the hand-built mock's layout on every page ───────────────────────────────────────────── */
:root { --win-bar: 26px; --win-frame: 3px; --field-pad: 60px; --t-label: 11px; --t-data: 13px; --t-lead: clamp(18px, 2vw, 22px);
  --dur-link: .5s; --dur-spring: .25s; }
@media (max-width: 640px) { :root { --field-pad: 30px; } }

/* the bar and footer are static HTML from tools/site_chrome.py (static-chrome.css); the app's old ones are gone */
body { padding-left: 0 !important; }
.siderail, .floating-mark, .hero-side-mark, .topbar { display: none !important; }
/* the no-script copy of each page (#root's prerendered .seohome) stays for crawlers and no-JS visitors; with JS it would
   flash for a second before React draws the page, so it is hidden as soon as scripts run */
html.js #root > .seohome { display: none !important; }
#root { min-height: 70vh; }

/* sections are flat fields that run edge to edge: no hairlines between them */
main > section, .page-enter > section, .page-enter > header { border-bottom: 0 !important; }
.field { padding: var(--field-pad) 0 !important; }
.f-felt { background: var(--felt) !important; color: var(--paper); }
.f-ink { background: var(--ink) !important; color: var(--paper); }
.tag { display: inline-block; padding: 4px 8px; background: var(--ink); color: var(--paper-raised); font: 500 var(--t-label)/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }

/* a window: ink title bar, brass-grey frame, paper-raised body */
.win { background: var(--brd-strong); padding: 0 var(--win-frame) var(--win-frame); }
.win__bar { display: flex; justify-content: space-between; gap: 10px; height: var(--win-bar); margin: 0 calc(-1 * var(--win-frame)); padding: 0 10px; background: var(--ink); color: var(--paper-raised);
  font: 500 var(--t-label)/var(--win-bar) var(--mono); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; overflow: hidden; transition: background-color var(--dur-link) var(--ease-link); }
.win__bar span:last-child { color: var(--brass-bright); overflow: hidden; text-overflow: ellipsis; }
.win__body { background: var(--paper-raised); color: var(--ink); }

/* home */
.home-v2 h1 { font-size: clamp(52px, 9vw, 128px) !important; line-height: .86 !important; letter-spacing: -.03em !important; text-transform: capitalize; max-width: 12ch !important; margin: 30px 0 !important; }
.home-v2 .lead2 { max-width: 52ch; margin: 0; font: 400 var(--t-lead)/1.25 var(--claim) !important; letter-spacing: .01em; color: var(--ink-dim); }
.home-v2 .lead2 b { font-weight: 600; color: var(--ink); }
.home-v2 .lead2 code { font: 500 .85em/1 var(--mono); background: var(--paper-inset); padding: 1px 5px; }
.home-v2 .ctas { display: flex; gap: 30px; flex-wrap: wrap; margin-top: 30px; align-items: flex-end; }
.big-cta { display: inline-flex; flex-direction: column; gap: 6px; color: var(--ink); text-decoration: none; font: 600 clamp(26px, 3.6vw, 44px)/1 var(--claim); letter-spacing: -.02em; text-transform: capitalize; }
.big-cta::after { content: ""; height: 4px; background: var(--ink); transform-origin: bottom; transition: transform var(--dur-spring) var(--ease-spring), background-color var(--dur-link) var(--ease-link); }
.big-cta:hover { color: var(--brass-text); }
.big-cta:hover::after { transform: scaleY(2); background: var(--brass); }
/* a big link in a page head (the Viewer page's "Open the Viewer now"), with a small note beside it */
.ph-actions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 20px; margin-top: 24px; }
.big-cta-note { font: 400 12px/1.5 var(--mono); color: var(--ink-faint); padding-bottom: 8px; }
/* minmax(0, 1fr): a column can never be widened by its content (a picture at its natural size), whatever loaded first */
.home-v2 .media { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; align-items: start; }
.home-v2 .media > .win { min-width: 0; }
.home-v2 .media .try-card { position: relative; overflow: hidden; }
.home-v2 .media .try-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-v2 .media .win__body { display: flex; flex-direction: column; }
.home-v2 .media .try-card { display: block; margin: 0; width: 100%; height: auto; min-height: 0; aspect-ratio: 16 / 9; border-radius: 0 !important; border: 0; }
.home-v2 .media .try-card img { object-position: 50% 30%; }
.home-v2 .media .try-card .tc-label { font-size: clamp(20px, 2.2vw, 28px); }
.home-v2 .promo-video, .home-v2 .video-wrap { margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent; }
.home-v2 .video-frame { aspect-ratio: 16 / 9; border-radius: 0 !important; }
.home-v2 .video-frame video { width: 100%; height: 100%; object-fit: cover; }
.home-v2 .video-meta { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; min-height: calc(3em + 24px); padding: 12px 14px; margin: 0; border: 0 !important;
  background: var(--paper-raised); font: 400 var(--t-data)/1.5 var(--mono) !important; color: var(--ink-dim); }
@media (max-width: 820px) { .home-v2 .media { grid-template-columns: 1fr; } }
.home-v2 .products { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
@media (max-width: 820px) { .home-v2 .products { grid-template-columns: 1fr; } }
.home-v2 .product { display: block; text-decoration: none; color: var(--ink); }
.home-v2 .product h3 { margin: 0; padding: 20px 20px 0; font: 600 clamp(26px, 3vw, 36px)/1 var(--claim) !important; letter-spacing: -.02em; }
.home-v2 .product .go { display: flex; justify-content: space-between; align-items: center; padding: 10px 20px 20px; font: 500 12px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-faint); }
.home-v2 .product .go b { width: 34px; height: 34px; display: grid; place-items: center; background: var(--ink); color: var(--paper-raised); font: 600 18px/1 var(--claim);
  transition: transform var(--dur-spring) var(--ease-spring), background-color var(--dur-link) var(--ease-link); }
.home-v2 .product:hover .go b { transform: translateX(5px); background: var(--brass); }
.home-v2 .product:hover .win__bar { background: var(--brass); }
.home-v2 .product img { display: block; width: 100%; height: auto; border-top: 1px solid var(--brd); }
.home-v2 .claims { display: grid; gap: 60px; }
.home-v2 .claim { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 30px; align-items: start; border-top: 1px solid rgba(251, 247, 234, .14); padding-top: 30px; }
@media (max-width: 820px) { .home-v2 .claim { grid-template-columns: 1fr; gap: 20px; } }
.home-v2 .claim h2 { color: var(--paper-raised) !important; margin: 0; font-size: clamp(30px, 4.6vw, 56px) !important; line-height: .92 !important; text-transform: capitalize; }
.home-v2 .claim p { margin: 0 0 20px; font: 400 var(--t-lead)/1.3 var(--claim) !important; color: var(--paper-inset); }
.home-v2 .claim .fig { display: flex; gap: 30px; margin: 0 0 20px; }
.home-v2 .claim .fig > div { font: 600 clamp(36px, 5vw, 64px)/.9 var(--claim); letter-spacing: -.03em; color: var(--brass-bright); }
.home-v2 .claim .fig small { display: block; margin-top: 6px; font: 500 var(--t-label)/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--paper-inset); }
.home-v2 .links { display: flex; gap: 5px; flex-wrap: wrap; }
.home-v2 .links a { display: inline-flex; align-items: center; height: 34px; padding: 0 12px; background: var(--paper-raised); color: var(--ink) !important; text-decoration: none;
  font: 500 12px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; transition: background-color var(--dur-link) var(--ease-link), color var(--dur-link) var(--ease-link); }
.home-v2 .links a:hover { background: var(--brass); color: var(--paper-raised) !important; }

/* the waitlist ask: claim left, ask right, on felt */
section.waitlist { padding: var(--field-pad) 0 !important; }
.waitlist .wait { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 30px; align-items: end; text-align: left; }
@media (max-width: 820px) { .waitlist .wait { grid-template-columns: 1fr; } }
.waitlist .wait h2 { margin: 0; font-size: clamp(30px, 4.6vw, 56px) !important; line-height: .92 !important; text-transform: capitalize; max-width: none; }
.waitlist .wait .lede { margin: 0 0 20px; max-width: none; font: 400 var(--t-lead)/1.3 var(--claim) !important; }
.waitlist .wl-cta { height: auto; padding: 12px 18px; border-radius: 0; font: 600 16px/1 var(--claim); letter-spacing: .01em; text-transform: none; }
.waitlist .wl-foot { margin-top: 10px; justify-content: flex-start; font: 400 12px/1.5 var(--mono); }

/* footer on ink, four columns, brass headings */
footer.footer { padding: var(--field-pad) 0 30px !important; }
.foot-grid { grid-template-columns: 2fr 1fr 1fr !important; gap: 30px !important; }
@media (max-width: 820px) { .foot-grid { grid-template-columns: 1fr 1fr !important; } .foot-grid .fmain { grid-column: 1 / -1; } }
footer.footer h5 { font: 500 var(--t-label)/1 var(--mono) !important; letter-spacing: .08em !important; text-transform: uppercase; }
footer.footer p, footer.footer li { font: 400 12px/1.7 var(--mono) !important; }

/* every card on the inner pages is a window: brass-grey frame, ink title band, paper-raised body */
.plan, .hw-card, .rm-card, .lib-card, .sp-card, .hs-card, .fmt-spec-copybox, .fmt-jump-card, .fmt-feature, .eng-format, .eng-stat,
.hw-race, .hw-storage-totals, .hw-storage-matrix, .bundle-byo, .trainer-cta, .video-wrap, .viewer-thumb, .about-portrait, .fh-visual,
.rm-visual, .pp-visual-inner, .pipe-diagram, .cmp-table, .tab-empty, .try-split-half, .lib-includes, .features-grid {
  position: relative; border: var(--win-frame) solid var(--brd-strong) !important; border-top: var(--win-bar) solid var(--ink) !important;
  /* drawn as one image so the thick top border does not mitre into the side borders; the slice is --win-bar and --win-frame, unitless */
  border-image: linear-gradient(to bottom, var(--win-band, var(--ink)) var(--win-bar), var(--brd-strong) var(--win-bar)) 26 3 3 3 !important;
  border-radius: 0 !important; box-shadow: none !important; }
.plan, .hw-card, .rm-card, .lib-card, .sp-card, .hs-card, .fmt-jump-card, .fmt-feature, .eng-format, .eng-stat, .bundle-byo, .trainer-cta,
.tab-empty, .try-split-half, .lib-includes { background: var(--paper-raised) !important; }
/* the card's own label sits in its title band */
.hw-card > .hw-mark, .plan > .pname, .lib-card > .lib-badge, .hs-card .hs-eyebrow, .sp-card > .sp-head .sp-eyebrow, .lib-includes > .lib-includes-eyebrow,
.hw-storage-totals > .hst-eyebrow, .rm-card .rm-num {
  position: absolute !important; top: calc(-1 * var(--win-bar)); left: 0; right: 0; height: var(--win-bar); margin: 0 !important; padding: 0 10px !important;
  background: transparent !important; border: 0 !important; border-radius: 0 !important; color: var(--paper-raised) !important;
  font: 500 var(--t-label)/var(--win-bar) var(--mono) !important; letter-spacing: .08em !important; text-transform: uppercase; text-align: left; white-space: nowrap; overflow: hidden; }
.plan > .upgrade-badge { position: absolute !important; top: calc(-1 * var(--win-bar) + 4px) !important; right: 8px; left: auto !important; transform: none !important;
  height: 18px; padding: 0 8px !important; border-radius: 0 !important; background: var(--brass-bright) !important; color: var(--ink) !important;
  font: 600 10px/18px var(--mono) !important; letter-spacing: .06em; gap: 6px !important; }
.plan > .upgrade-badge .ub-line { font: inherit !important; letter-spacing: inherit !important; opacity: 1 !important; }
.plan > .upgrade-badge .ub-amt { font: 700 10px/18px var(--mono) !important; letter-spacing: inherit !important; color: var(--ink) !important; }
.fmt-spec-copybox-bar { background: var(--ink) !important; color: var(--paper-raised) !important; border-radius: 0 !important; }
/* windows are flat: no hover lift, brass band on hover where the whole card is a link */
a.lib-card:hover, a.fmt-jump-card:hover, a.viewer-thumb:hover { transform: none !important; --win-band: var(--brass); }

/* the Solver page's screen ring (ShotRing, after Bencho's Carousel): screens as small windows on a turntable */
.ring { margin: 10px 0 60px; outline: none; }
.ring:focus-visible .ring-stage { box-shadow: 0 0 0 3px var(--brass); }
.ring-stage { position: relative; height: clamp(300px, 40vw, 560px); perspective: 1600px; perspective-origin: 50% 30%;
  touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none; }
.ring-stage:active { cursor: grabbing; }
.ring-card { position: absolute; left: 50%; top: 50%; width: min(62%, 860px); background: var(--brd-strong);
  padding: 0 var(--win-frame) var(--win-frame); transform-origin: center; will-change: transform; box-shadow: 0 30px 50px -28px rgba(27, 24, 16, .55); }
.ring-card::after { content: ""; position: absolute; inset: 0; background: rgba(27, 24, 16, var(--ring-dim, 0)); pointer-events: none; }
.ring-card.ring-front { cursor: zoom-in; }
.ring-bar { display: flex; justify-content: space-between; gap: 10px; height: var(--win-bar); margin: 0 calc(-1 * var(--win-frame)); padding: 0 10px;
  background: var(--ink); color: var(--paper-raised); font: 500 var(--t-label)/var(--win-bar) var(--mono); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; overflow: hidden; }
.ring-bar span:last-child { color: var(--brass-bright); }
.ring-front .ring-bar { background: var(--ink); }
.ring-card img { display: block; width: 100%; height: auto; aspect-ratio: 2560 / 1392; object-fit: cover; object-position: top left; background: var(--paper-raised);
  pointer-events: none; -webkit-user-drag: none; }
.ring-controls { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: var(--win-frame); max-width: 860px; margin: 18px auto 0; }
.ring-arrow { height: 44px; border: 0; border-radius: 0; cursor: pointer; background: var(--ink); color: var(--paper-raised); font: 600 20px/1 var(--claim);
  transition: background-color .3s var(--ease-link), transform var(--dur-spring) var(--ease-spring); }
.ring-arrow:hover { background: var(--brass); }
.ring-arrow:first-child:hover { transform: translateX(-3px); } .ring-arrow:last-child:hover { transform: translateX(3px); }
.ring-now { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 0 14px; height: 44px; overflow: hidden;
  background: var(--paper-raised); border: 1px solid var(--brd-strong); font: 500 12px/1.2 var(--mono); letter-spacing: .04em; color: var(--ink-dim); }
.ring-cap { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ring-count { flex: none; color: var(--brass-text); font-weight: 600; }
.ring-progress { position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: var(--brass); transform-origin: left; transform: scaleX(0); }
.ring-playing .ring-progress { animation: reelFill linear forwards; }
@keyframes reelFill { to { transform: scaleX(1); } }
.ring-strip { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: var(--win-frame); max-width: 860px; margin: var(--win-frame) auto 0; }
.ring-thumb { position: relative; padding: 0; border: 0; border-radius: 0; background: var(--paper-raised); cursor: pointer; aspect-ratio: 2560 / 1392; overflow: hidden; }
.ring-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top left; opacity: .5; transition: opacity .4s var(--ease-link); }
.ring-thumb::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--brass); transform: scaleX(0); transform-origin: left;
  transition: transform .4s var(--ease-spring); }
.ring-thumb:hover img, .ring-thumb.ring-on img { opacity: 1; }
.ring-thumb.ring-on::after { transform: scaleX(1); }
@media (max-width: 720px) {
  .ring-stage { height: clamp(220px, 62vw, 340px); }
  .ring-card { width: 78%; }
  .ring-strip { grid-template-columns: repeat(8, 84px); overflow-x: auto; scrollbar-width: none; }
  .ring-controls { grid-template-columns: 40px minmax(0, 1fr) 40px; }
  .ring-arrow, .ring-now { height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .ring-thumb img, .ring-thumb::after, .ring-arrow { transition: none !important; }
  .ring-progress { display: none; }
}

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

/* generated: every serif rule becomes the claim face (Hanken Grotesk, upright, tight) */
:root,
.section-head h2,
.ph-title,
.hc-beat h2,
.hero-headline,
.ps-tag-name,
.bundle-card-name,
.bundle-byo::before,
.bundle-byo-title,
.trainer-cta-title,
.bundle-plus > span,
.hiw-step h3,
.features-block h3.product,
.feature.feature-wide h4,
.plan h3.ph,
.waitlist h2,
.lb-nav,
.tc-label,
.pipe-step h4,
.pipe-detail-head h5,
.hs-title,
.sp-title,
.sp-row-amt,
.sp-total-amt,
.fmt-title,
.fmt-feature h3,
.ha-arr,
.try-split-title,
.try-box-title,
.fmt-jump-title,
.fh-section-tag-text,
.fh-title,
.lib-card-title,
.lib-price,
.lib-empty-title,
.upgrade-badge .ub-amt,
.lib-include-title,
.rm-title,
.rm-empty-title,
.about-portrait-name,
.about-block .about-h,
.tab-empty-title,
.cl-version,
.bug-title,
.eng-title,
.eng-stat-amt,
.pp-text h3,
.pp-handoff h3,
.hw-card h3,
.hw-tier-amt,
.hsm-amt,
.hst-amt,
.hwr-amt,
.cmp-title,
.cmp-plan-price,
.docs-h1 { font-family: var(--claim) !important; font-style: normal !important; font-weight: 600; letter-spacing: -.02em; }

/* generated: square corners (circles and pills stay round) */
.top-version,
.btn,
.skip-link,
.ps-shot,
.bundle-card,
.bundle-card-badge,
.bundle-card-image,
.bundle-features li code,
.bundle-byo,
.bundle-byo-lede code,
.bundle-byo-slot,
.bundle-byo-slot-badge,
.nav-badge,
.trainer-status,
.trainer-status-tag,
.trainer-cta,
.split-pane,
.console .pbar .track,
.console .pbar .fill,
.rc-toolbar .chip,
.rc-legend .sw .swatch,
.hiw-step,
.features-grid,
.demo-wrap,
.demo-top .url,
.demo-sidebar .opt,
.stat,
.plan,
.wl-cta,
.lb-trigger::after,
.lb-overlay > img,
.lb-close,
.lb-thumb,
.lb-nav,
.lb-thumbs,
.viewer-hero, .viewer-thumb,
.viewer-shot-cap,
.viewer-hero::after,
.viewer-thumb::after,
.solver-collage-cta,
.video-wrap,
.try-card,
.pipeline,
.pipe-tool,
.pipe-diagram,
.pipe-vs-cell code,
.pipe-vs-strip,
.bt-chip,
.bt-pricetag,
.sf-badge,
.pp-overview-foot,
.pp-overview-foot-tag,
.hs-card,
.hs-lede code,
.hs-node,
.hs-node-label code,
.hs-node-list li code,
.sp-card,
.sp-scope,
.sp-phase-tag,
.sp-row-bar,
.sp-row-bar-fill,
.sp-total,
.fmt-body code, .fmt-body-small code,
.fmt-callout,
.fmt-feature,
.fmt-code,
.fmt-node,
.fmt-steps li code,
.fmt-ref,
.fmt-ref code,
.fmt-spec-ai,
.fmt-spec-copybox,
.fmt-spec-copybox-bar,
.fmt-spec-copybox-btn,
.fmt-spec-copybox-foot,
.fmt-spec-copybox-foot-tag,
.hero-action,
.hero-action.ha-try-hero,
.try-split-half,
.hero-discord,
.hero-spec-callout,
.fmt-jump-card,
.btn-discord,
.btn-support,
.btn-download,
.top-download .nav-dropdown,
.top-buy > .btn,
.top-buy .nav-dropdown,
.top-buy-dropdown a,
.nav-tabs .nav-dropdown,
.fh-section-tag-badge,
.fh-body code, .fh-list code,
.fh-visual,
.fh-visual-zoom::after,
.lib-card,
.lib-badge,
.lib-pot,
.lib-includes,
.upgrade-strip,
.rm-card,
.rm-visual,
.about-portrait,
.about-block-meta,
.tabs-row,
.tab-btn,
.tab-empty,
.cl-current,
.cl-impact,
.eng-body code,
.eng-stat,
.eng-format,
.eng-format-badge,
.pp-visual-inner,
.pp-handoff,
.pp-flow-node,
.hw-card,
.hw-tier,
.hw-storage-matrix,
.hw-storage-totals,
.hst-bar,
.hst-bar-fill,
.hw-race,
.hwr-track,
.hwr-fill,
.mobile-menu-btn,
.mobile-menu-btn span,
.cmp-table,
.docs-side::-webkit-scrollbar-thumb,
.docs-search,
.docs-search-kbd,
.docs-link,
code.ic,
.callout,
.codeblock,
.codeblock-copy,
.figure-frame,
.figure-tag,
.docs-table-wrap,
.docs-pn a,
.docs-landing-search,
.docs-card,
.docs-card-glyph,
.docs-card-link,
.docs-burger { border-radius: 0 !important; }
@media (max-width: 760px) {
.pp-handoff { border-radius: 0 !important; }
}
@media (min-width: 1261px) {
.rail-link { border-radius: 0 !important; }
}

/* generated: no drop shadows */
.ps-shot,
.ps-card:hover .ps-shot,
.bundle-byo-slot-feat,
.bundle-byo-slot-feat:hover,
.plan.feat,
.lb-overlay > img,
.viewer-hero:hover, .viewer-thumb:hover,
.promo-video .video-wrap,
.pv-btn,
.try-card,
.tc-arr,
.fmt-spec-copybox,
.hero-action:hover,
.fmt-jump-card,
.fmt-jump-card:hover,
.top-download .nav-dropdown,
.top-buy .nav-dropdown,
.nav-tabs .nav-dropdown,
.fh-visual,
.fh-visual-dark,
.lib-card,
.lib-card:not(.lib-card-empty),
.lib-card-empty,
.upgrade-badge,
.rm-dot-far,
.rm-dot-empty,
.rm-card,
.rm-card-feat,
.bug-dot,
.eng-format-feat { box-shadow: none !important; }
@media (max-width: 1260px) {
.mobile-menu { box-shadow: none !important; }
}
@media (max-width: 899px) {
.docs-side-open { box-shadow: none !important; }
}
