/* PALBON: styles of the public PALBON-Suites website (frappe/www home, products/, platform, …).
   Served as-is, no build step. Palette: midnight navy, royal blue, burnished gold — no green or teal
   anywhere in the theme. Light and dark themes share one set of semantic tokens; hero bands are
   always dark. Everything is prefixed ps- so nothing collides with the Desk or website bundles. */

/* The Inter face (one variable file, every weight), the sans / mono stacks and the brand constants come from the
   master theme, palbon_tokens.css - linked before this file by palbon_site/base.html and includes/head.html.
   This file keeps its own marketing scale (16 px reading size, display headings, 16 / 24 px radii). */

/* ---------- Tokens ---------- */
/* Every colour is a variable of the theme palette (palbon_palette.css: four themes x light / dark); this file maps its
   own names onto it once, so the site follows the theme and the mode with no rule of its own. The navy scale is
   the theme's night colours in both modes: hero bands, the call-to-action band and the footer stay dark. */
:root,[data-ps-theme]{
--navy-950:var(--pb-band-deep);--navy-900:var(--pb-band-bg);--navy-850:var(--pb-band-rail);--navy-800:var(--pb-band-surface);--navy-700:var(--pb-band-raised);--navy-600:var(--pb-band-line);
--blue-700:var(--pb-accent-vivid);--blue-600:var(--pb-accent-vivid);--blue-500:var(--pb-accent-vivid);--blue-400:var(--pb-band-accent);--blue-300:var(--pb-band-accent);--sky-400:var(--pb-accent-secondary);
--violet-600:var(--pb-glow-2);--violet-500:var(--pb-glow-2);--violet-400:var(--pb-glow-2);
--gold-700:var(--pb-text-highlight);--gold-600:var(--pb-gold-deep);--gold-500:var(--pb-gold);--gold-400:var(--pb-accent-secondary);--gold-300:var(--pb-gold-soft);
--ochre:var(--pb-text-highlight);--crimson:var(--pb-text-danger);--crimson-400:var(--pb-text-danger);
--radius-sm:var(--pb-radius-md);--radius:16px;--radius-lg:24px;--container:1200px;--header-h:72px;
--ease:cubic-bezier(.2,.7,.2,1);
--font:var(--pb-font-sans);
--bg:var(--pb-bg-main);--surface:var(--pb-bg-surface);--surface-2:var(--pb-bg-raised);--ink:var(--pb-text-primary);--ink-2:var(--pb-text-primary);
--muted:var(--pb-text-muted);--faint:var(--pb-text-soft);--line:var(--pb-border-subtle);--line-2:var(--pb-border-strong);
--primary:var(--pb-text-link);--primary-strong:var(--pb-text-link);--tint:var(--pb-bg-tint);
--tint-gold:color-mix(in srgb,var(--pb-accent-secondary) 14%,var(--pb-bg-surface));
--accent:var(--pb-text-highlight);--danger:var(--pb-text-danger);--header-bg:var(--pb-bg-head-glass);--focus:var(--pb-accent-vivid);
--shadow-sm:var(--pb-shadow-elevation-1);--shadow-md:var(--pb-shadow-elevation-2);--shadow-lg:var(--pb-shadow-elevation-3);
/* on the dark bands */
--on-dark:var(--pb-band-text);--on-dark-muted:var(--pb-band-muted);--on-dark-soft:var(--pb-band-soft);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body.ps{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
/* The reset is wrapped in :where() so that it has no specificity: any ps- class overrides it. */
:where(.ps) :where(h1,h2,h3,h4,p,ul,ol,figure){margin:0}
:where(.ps) :where(ul,ol){padding:0;list-style:none}
:where(.ps) :where(img,svg){display:block;max-width:100%}
:where(.ps) a{color:inherit;text-decoration:none}
:where(.ps) button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.ps :focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}
.ps main:focus{outline:none}
.ps-icon{flex:none}
.ps-container{width:100%;max-width:calc(var(--container) + 48px);margin:0 auto;padding:0 24px}
.ps-skip{position:absolute;left:16px;top:-60px;z-index:100;padding:10px 16px;border-radius:10px;background:var(--pb-accent-solid);color:var(--pb-text-on-accent)!important;font-weight:600;transition:top .2s}
.ps-skip:focus{top:12px}
/* An author display value (grid, flex) outranks the browser's own [hidden] rule: restore it. */
.ps [hidden]{display:none!important}
.ps-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Product accent: light or dark value, chosen by theme; dark bands always take the dark one */
[style*="--acc-l"]{--acc:var(--acc-l)}
[data-ps-theme="dark"] [style*="--acc-l"],.ps-dark [style*="--acc-l"],.ps-dark[style*="--acc-l"]{--acc:var(--acc-d)}

/* ---------- Buttons ---------- */
.ps-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:12px;border:1px solid transparent;font-size:14.5px;font-weight:600;line-height:1.2;white-space:nowrap;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background-color .2s,border-color .2s,color .2s}
.ps-btn:hover{transform:translateY(-1px)}
.ps-btn:active{transform:none}
.ps-btn--lg{padding:15px 26px;border-radius:14px;font-size:16px}
.ps-btn--primary{background:var(--pb-grad-primary);color:var(--pb-text-on-accent)!important;box-shadow:var(--pb-shadow-glow),inset 0 1px 0 var(--pb-sheen)}
.ps-btn--primary:hover{background:var(--pb-grad-primary-hover);box-shadow:var(--pb-shadow-glow),inset 0 1px 0 var(--pb-sheen)}
.ps-btn--gold{background:var(--pb-grad-secondary);color:var(--pb-text-on-secondary)!important;box-shadow:0 12px 28px -12px color-mix(in srgb,var(--pb-glow-3) 80%,transparent),inset 0 1px 0 var(--pb-sheen)}
.ps-btn--gold:hover{box-shadow:0 18px 36px -14px color-mix(in srgb,var(--pb-glow-3) 95%,transparent),inset 0 1px 0 var(--pb-sheen)}
.ps-btn--ghost{border-color:var(--line-2);color:var(--ink);background:var(--surface)}
.ps-btn--ghost:hover{border-color:var(--primary);color:var(--primary)}
.ps-btn--ghost-light{border-color:color-mix(in srgb,var(--pb-band-text) 30%,transparent);color:var(--on-dark)!important;background:color-mix(in srgb,var(--pb-band-text) 4%,transparent)}
.ps-btn--ghost-light:hover{border-color:color-mix(in srgb,var(--pb-band-text) 65%,transparent);background:color-mix(in srgb,var(--pb-band-text) 10%,transparent)}
.ps-btn--quiet{color:inherit}
/* PALBON: the quiet button sits on dark heroes and light bars alike; it keeps its own text colour and gains a glass tint */
.ps-btn--quiet:hover,.ps-btn--quiet:focus-visible{background:color-mix(in srgb,currentColor 12%,transparent);border-color:color-mix(in srgb,currentColor 32%,transparent)}
.ps-btn[disabled]{opacity:.6;cursor:progress;transform:none}
.ps-iconbtn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid transparent;color:inherit;transition:background-color .2s,border-color .2s}
.ps-iconbtn:hover{background:color-mix(in srgb,var(--pb-text-soft) 16%,transparent)}
.ps-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--primary)}
.ps-link .ps-icon{transition:transform .2s var(--ease)}
.ps-link:hover .ps-icon{transform:translateX(3px)}

/* ---------- Header ---------- */
.ps-header{position:fixed;inset:0 0 auto 0;z-index:50;color:var(--on-dark);transition:background-color .25s,box-shadow .25s,color .25s,border-color .25s;border-bottom:1px solid transparent}
.ps-header__bar{display:flex;align-items:center;gap:20px;height:var(--header-h)}
.ps-header.is-stuck,.ps-header.is-open{background:var(--header-bg);color:var(--ink);border-bottom-color:var(--line);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px)}
.ps-brand{display:inline-flex;align-items:center;gap:11px;flex:none}
.ps-brand__mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--pb-logo-plate);box-shadow:0 0 0 1px var(--pb-border-subtle),var(--pb-shadow-elevation-2)}
.ps-brand__mark img{width:28px;height:28px;object-fit:contain}
.ps-brand__text{display:flex;flex-direction:column;line-height:1.1}
.ps-brand__name{font-size:18px;font-weight:800;letter-spacing:-.02em}
.ps-brand__name b{font-weight:800;color:var(--sky-400)}
.ps-header.is-stuck .ps-brand__name b,.ps-header.is-open .ps-brand__name b{color:var(--primary)}
.ps-brand__tag{margin-top:3px;font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:.7}
.ps-nav{display:flex;align-items:center;flex:1;gap:12px;margin-left:12px}
.ps-nav__list{display:flex;align-items:center;gap:2px;margin:0 auto 0 0!important}
.ps-nav__item{position:relative}
.ps-nav__link{display:inline-flex;align-items:center;gap:4px;padding:9px 13px;border-radius:10px;font-size:14.5px;font-weight:500;opacity:.86;transition:opacity .2s,background-color .2s,color .2s}
.ps-nav__link:hover,.ps-nav__link.is-active,.ps-nav__link[aria-expanded="true"]{opacity:1;background:color-mix(in srgb,var(--pb-text-soft) 16%,transparent)}
.ps-nav__link.is-active{font-weight:600}
.ps-nav__link .ps-icon{transition:transform .2s var(--ease)}
.ps-nav__link[aria-expanded="true"] .ps-icon{transform:rotate(180deg)}
.ps-nav__actions{display:flex;align-items:center;gap:6px}
.ps-header__tools{display:flex;align-items:center;gap:4px}
.ps-burger{display:none}
.ps-burger__close,.ps-burger[aria-expanded="true"] .ps-burger__open{display:none}
.ps-burger[aria-expanded="true"] .ps-burger__close{display:block}
[data-ps-theme="dark"] .ps-theme__moon,[data-ps-theme="light"] .ps-theme__sun{display:none}

@keyframes ps-pop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- Marks and wordmarks ---------- */
.ps-mark{display:grid;place-items:center;flex:none;width:var(--mark,48px);height:var(--mark,48px);border-radius:28%;background:var(--pb-logo-plate);box-shadow:0 0 0 1px var(--pb-border-subtle),var(--pb-shadow-elevation-2);overflow:hidden}
.ps-mark img{width:76%;height:76%;object-fit:contain}
.ps-mark--glyph{background:linear-gradient(135deg,var(--acc-d),var(--acc-l));color:var(--pb-text-on-kpi);box-shadow:0 8px 18px -10px var(--acc-l),inset 0 1px 0 var(--pb-sheen)}
.ps-wordmark{font-weight:800;letter-spacing:-.02em}
.ps-wordmark b{font-weight:800;color:var(--acc,var(--primary))}

/* ---------- Dark bands: home hero, page hero, product hero, CTA ---------- */
.ps-dark{position:relative;isolation:isolate;overflow:hidden;color:var(--on-dark);background:
radial-gradient(900px 520px at 88% 0%,color-mix(in srgb,var(--pb-glow-1) 46%,transparent),transparent 62%),
radial-gradient(720px 480px at 4% 28%,color-mix(in srgb,var(--pb-glow-2) 30%,transparent),transparent 60%),
radial-gradient(620px 360px at 58% 118%,color-mix(in srgb,var(--pb-glow-3) 20%,transparent),transparent 62%),
linear-gradient(180deg,var(--navy-950) 0%,var(--navy-850) 58%,var(--navy-900) 100%)}
.ps-dark::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.9;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='45'%3E%3Cpath d='M13 0 26 7.5v15L13 30 0 22.5v-15ZM13 30v15' fill='none' stroke='%238FA8FF' stroke-opacity='.17'/%3E%3C/svg%3E");
-webkit-mask-image:radial-gradient(ellipse 75% 70% at 60% 25%,#000 20%,transparent 78%);mask-image:radial-gradient(ellipse 75% 70% at 60% 25%,#000 20%,transparent 78%)}
.ps-dark::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--pb-glow-3) 55%,transparent),transparent)}

.ps-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.ps-eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--gold-600),var(--gold-300))}
.ps-eyebrow--light{color:var(--gold-400)}

/* Home hero */
.ps-hero{padding:calc(var(--header-h) + clamp(40px,7vw,88px)) 0 clamp(64px,8vw,112px)}
.ps-hero__grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.ps-hero__pill{display:inline-flex;align-items:center;gap:10px;padding:7px 14px 7px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--pb-glow-3) 35%,transparent);background:color-mix(in srgb,var(--pb-glow-3) 8%,transparent);color:var(--gold-300);font-size:13px;font-weight:600}
.ps-hero__pill b{padding:3px 9px;border-radius:999px;background:var(--pb-grad-secondary);color:var(--pb-text-on-secondary);font-size:11.5px;font-weight:800;letter-spacing:.04em}
.ps-hero__title{margin-top:22px!important;font-size:clamp(2.5rem,5.4vw,4.4rem);font-weight:800;line-height:1.03;letter-spacing:-.04em;color:var(--on-dark)}
.ps-hero__title em{font-style:normal;background:linear-gradient(100deg,var(--pb-band-accent) 0%,var(--pb-band-highlight) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.ps-hero__lead{margin-top:22px!important;max-width:34em;font-size:clamp(1.05rem,1.35vw,1.2rem);line-height:1.65;color:var(--on-dark-muted)}
.ps-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.ps-hero__points{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:30px!important;font-size:14px;color:var(--on-dark)}
.ps-hero__points li{display:inline-flex;align-items:center;gap:8px}
.ps-hero__points .ps-icon{color:var(--gold-400)}

/* Hero stage: an illustrative suite window, drawn in HTML and SVG */
.ps-stage{position:relative;padding:18px 0 46px}
.ps-window{border-radius:20px;border:1px solid color-mix(in srgb,var(--pb-band-text) 22%,transparent);background:linear-gradient(180deg,var(--navy-800),var(--navy-900));box-shadow:0 40px 90px -30px color-mix(in srgb,var(--pb-band-deep) 85%,transparent),0 0 0 1px color-mix(in srgb,var(--pb-band-text) 3%,transparent),inset 0 1px 0 color-mix(in srgb,var(--pb-band-text) 8%,transparent);overflow:hidden;transform:perspective(1600px) rotateY(-7deg) rotateX(3deg);transform-origin:left center}
.ps-window__bar{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid color-mix(in srgb,var(--pb-band-text) 14%,transparent);font-size:12px;color:var(--on-dark-soft)}
.ps-window__bar i{width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--pb-band-text) 35%,transparent)}
.ps-window__bar i:first-child{background:var(--pb-accent-secondary)}
.ps-window__bar span{margin-left:10px}
.ps-window__body{display:grid;grid-template-columns:58px 1fr}
.ps-window__rail{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 0;border-right:1px solid color-mix(in srgb,var(--pb-band-text) 14%,transparent)}
.ps-window__rail .ps-mark{--mark:34px;border-radius:10px}
.ps-window__rail .ps-mark.is-on{box-shadow:0 0 0 2px var(--blue-400),0 0 22px -2px color-mix(in srgb,var(--pb-glow-1) 80%,transparent)}
.ps-window__main{padding:16px;display:grid;gap:14px}
.ps-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ps-kpi{padding:12px;border-radius:12px;background:color-mix(in srgb,var(--pb-band-text) 8%,transparent);border:1px solid color-mix(in srgb,var(--pb-band-text) 12%,transparent)}
.ps-kpi span{display:block;font-size:11px;color:var(--on-dark-soft)}
.ps-kpi strong{display:block;margin-top:4px;font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--on-dark)}
.ps-kpi em{font-style:normal;font-size:11px;font-weight:600;color:var(--gold-400)}
.ps-chart{position:relative;border-radius:12px;background:color-mix(in srgb,var(--pb-band-text) 6%,transparent);border:1px solid color-mix(in srgb,var(--pb-band-text) 12%,transparent);padding:12px 12px 6px}
.ps-chart__head{display:flex;justify-content:space-between;font-size:11.5px;color:var(--on-dark-soft)}
.ps-chart__head b{color:var(--on-dark);font-weight:600}
.ps-chart svg{width:100%;height:auto;margin-top:6px}
.ps-rows{display:grid;gap:8px}
.ps-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;background:color-mix(in srgb,var(--pb-band-text) 6%,transparent);font-size:12px;color:var(--on-dark)}
.ps-row i{width:8px;height:8px;border-radius:50%;background:var(--dot,var(--blue-400))}
.ps-row b{padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:600;background:color-mix(in srgb,var(--pb-glow-1) 16%,transparent);color:var(--on-dark)}
.ps-row b.is-gold{background:color-mix(in srgb,var(--pb-glow-3) 16%,transparent);color:var(--gold-300)}
.ps-float{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:14px;border:1px solid color-mix(in srgb,var(--pb-band-text) 25%,transparent);background:color-mix(in srgb,var(--navy-800) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 22px 44px -18px color-mix(in srgb,var(--pb-band-deep) 90%,transparent);font-size:12px;color:var(--on-dark-muted);animation:ps-bob 7s ease-in-out infinite}
.ps-float strong{display:block;font-size:13px;font-weight:700;color:var(--on-dark)}
.ps-float .ps-mark{--mark:34px;border-radius:10px}
.ps-float--a{top:-6px;right:-4px}
.ps-float--b{bottom:0;left:-22px;animation-delay:-2.4s}
.ps-float--c{bottom:214px;right:-26px;animation-delay:-4.6s}
@keyframes ps-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* Inner page hero and product hero */
.ps-phero{padding:calc(var(--header-h) + clamp(44px,6vw,80px)) 0 clamp(48px,6vw,80px)}
.ps-phero__inner{max-width:calc(820px + 48px)}
.ps-phero--wide .ps-phero__inner{max-width:calc(var(--container) + 48px)}
.ps-phero__title{margin-top:16px!important;font-size:clamp(2.1rem,4.2vw,3.4rem);font-weight:800;line-height:1.07;letter-spacing:-.035em;color:var(--on-dark)}
.ps-phero__lead{margin-top:18px!important;max-width:40em;font-size:clamp(1.02rem,1.3vw,1.18rem);color:var(--on-dark-muted)}
.ps-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:var(--on-dark-soft)}
.ps-crumbs a:hover{color:var(--on-dark)}
.ps-crumbs span[aria-hidden]{opacity:.5}
.ps-prodhero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,64px);align-items:center;margin-top:26px}
.ps-prodhero__id{display:flex;align-items:center;gap:16px}
.ps-prodhero__id .ps-wordmark{font-size:clamp(1.5rem,2.4vw,2rem);color:var(--on-dark)}
.ps-prodhero__tag{display:block;margin-top:2px;font-size:14px;color:var(--on-dark-soft)}
.ps-glass{padding:24px;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--pb-band-text) 22%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--pb-band-text) 12%,transparent),color-mix(in srgb,var(--pb-band-text) 4%,transparent));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--pb-band-text) 8%,transparent),0 30px 60px -30px color-mix(in srgb,var(--pb-band-deep) 80%,transparent)}
.ps-glass h2{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--acc,var(--gold-400))}
.ps-glass .ps-checks{margin-top:14px!important;color:var(--on-dark)}
.ps-glass .ps-checks .ps-icon{color:var(--acc,var(--gold-400))}
.ps-glass hr{margin:20px 0;border:0;border-top:1px solid color-mix(in srgb,var(--pb-band-text) 20%,transparent)}

/* Page not found */
.ps-404{display:grid;align-items:center;min-height:min(820px,92vh);padding:calc(var(--header-h) + 48px) 0 72px;text-align:center}
.ps-404__inner{display:grid;justify-items:center}
.ps-404__code{font-size:clamp(6rem,18vw,12rem);font-weight:800;line-height:.9;letter-spacing:-.06em;background:linear-gradient(120deg,var(--pb-accent-vivid) 0%,var(--pb-text-highlight) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.ps-404 .ps-phero__lead{margin-left:auto;margin-right:auto}
.ps-404 .ps-hero__actions{justify-content:center}
.ps-404__products{margin-top:44px;max-width:760px}
.ps-chip.ps-chip--glass{border-color:color-mix(in srgb,var(--pb-band-text) 25%,transparent);background:color-mix(in srgb,var(--pb-band-text) 8%,transparent);color:var(--on-dark)}
.ps-chip.ps-chip--glass:hover{border-color:var(--acc-d);background:color-mix(in srgb,var(--pb-text-soft) 16%,transparent)}

/* ---------- Sections ---------- */
.ps-section{padding:clamp(64px,8.5vw,112px) 0}
.ps-section--alt{background:var(--surface)}
[data-ps-theme="dark"] .ps-section--alt{background:var(--surface-2)}
.ps-section--tight{padding:clamp(40px,5vw,64px) 0}
.ps-head{max-width:760px;margin-bottom:clamp(32px,4.5vw,56px)}
.ps-head--center{margin-left:auto;margin-right:auto;text-align:center}
.ps-head__title{margin-top:14px!important;font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:800;line-height:1.12;letter-spacing:-.03em}
.ps-head__lead{margin-top:16px!important;font-size:clamp(1rem,1.2vw,1.125rem);color:var(--muted)}
.ps-grid{display:grid;gap:20px}
.ps-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ps-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ps-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ps-center{display:flex;justify-content:center;margin-top:36px}

.ps-card{position:relative;padding:26px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.ps-section--alt .ps-card{background:var(--bg)}
[data-ps-theme="dark"] .ps-section--alt .ps-card{background:var(--surface)}
.ps-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--line-2)}
.ps-card__icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:var(--tint);color:var(--primary)}
.ps-card:nth-child(3n+2) .ps-card__icon{background:var(--tint-gold);color:var(--accent)}
.ps-card__title{margin-top:18px!important;font-size:1.0625rem;font-weight:700;letter-spacing:-.01em}
.ps-card__text{margin-top:8px!important;font-size:.95rem;color:var(--muted)}
.ps-card .ps-checks{margin-top:14px!important;font-size:.92rem}

.ps-card--accent .ps-card__icon,.ps-card--accent:nth-child(3n+2) .ps-card__icon{background:var(--tint);color:var(--acc,var(--primary))}
.ps-card--accent .ps-checks .ps-icon{color:var(--acc,var(--primary))}
.ps-card--link{display:block}
.ps-card--link:hover{border-color:var(--acc,var(--primary))}
.ps-card__row{display:flex;align-items:center;gap:14px}
.ps-card__row .ps-card__title{margin-top:0!important;font-size:1.25rem}
.ps-card__row+.ps-card__text{margin-top:14px!important}

.ps-checks{display:grid;gap:9px}
.ps-checks li{display:flex;align-items:flex-start;gap:10px}
.ps-checks .ps-icon{margin-top:4px;color:var(--primary)}

/* Product cards */
.ps-pcard{position:relative;display:flex;flex-direction:column;padding:24px;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s}
.ps-pcard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--acc),transparent 85%)}
.ps-pcard::after{content:"";position:absolute;right:-70px;top:-70px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,var(--acc) 0%,transparent 68%);opacity:.1;transition:opacity .28s}
.ps-pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--acc)}
.ps-pcard:hover::after{opacity:.22}
.ps-pcard__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ps-pcard__cat{padding:4px 10px;border-radius:999px;border:1px solid var(--line);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.ps-pcard__name{margin-top:18px;font-size:1.4rem;line-height:1.15}
.ps-pcard__tag{margin-top:4px;font-size:.9rem;font-weight:600;color:var(--acc)}
.ps-pcard__text{margin-top:12px;font-size:.96rem;color:var(--muted)}
.ps-pcard__list{display:grid;gap:8px;margin-top:16px!important;font-size:.9rem;color:var(--ink-2)}
.ps-pcard__list li{display:flex;align-items:flex-start;gap:9px}
.ps-pcard__list .ps-icon{margin-top:3px;color:var(--acc)}
.ps-pcard__more{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:20px;font-size:.92rem;font-weight:600;color:var(--acc)}
.ps-pcard__more .ps-icon{transition:transform .2s var(--ease)}
.ps-pcard:hover .ps-pcard__more .ps-icon{transform:translateX(4px)}
.ps-bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.ps-bento .ps-pcard--feature{grid-column:span 2;grid-row:span 2;padding:32px;background:linear-gradient(160deg,var(--surface) 55%,var(--tint) 100%)}
.ps-bento .ps-pcard--feature .ps-pcard__name{font-size:2rem}
.ps-bento .ps-pcard--feature .ps-pcard__text{font-size:1.15rem;font-weight:600;color:var(--ink)}
.ps-pcard__summary{margin-top:10px;font-size:.98rem;color:var(--muted)}
.ps-pcard__modules{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.ps-pcard__modules .ps-icon{color:var(--acc)}
.ps-bento .ps-pcard--feature .ps-pcard__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.ps-bento .ps-pcard:not(.ps-pcard--feature) .ps-pcard__list{display:none}
.ps-bento .ps-pcard:not(.ps-pcard--feature){padding:22px}
.ps-bento .ps-pcard:not(.ps-pcard--feature) .ps-pcard__name{font-size:1.2rem}

/* Filter chips (products index) */
.ps-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:32px}
.ps-filters{gap:10px}
.ps-filter{min-height:42px;padding:9px 18px;border-radius:999px;border:1px solid var(--line-2);font-size:14.5px;font-weight:500;line-height:1.2;color:var(--muted);background:var(--surface);box-shadow:var(--shadow-sm);transition:color .2s,border-color .2s,background-color .2s,box-shadow .2s,transform .2s var(--ease)}
.ps-filter:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}
.ps-filter[aria-pressed="true"]{background:var(--pb-grad-primary);border-color:transparent;color:var(--pb-text-on-accent);font-weight:600;box-shadow:var(--pb-shadow-glow)}
.ps-pcard[hidden]{display:none}

/* Chips */
.ps-chips{display:flex;flex-wrap:wrap;gap:8px}
.ps-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:600;transition:border-color .2s,transform .2s}
.ps-chip .ps-mark{--mark:24px;border-radius:50%;box-shadow:0 0 0 1px var(--pb-border-subtle)}
a.ps-chip:hover{border-color:var(--acc,var(--primary));transform:translateY(-1px)}
.ps-chips--spaced{margin-top:18px}
.ps-chips--center{justify-content:center;gap:10px}
.ps-chip--lg{padding:8px 16px 8px 8px;font-size:14.5px}
.ps-chip--lg .ps-mark{--mark:30px}
.ps-chip--plain{padding:7px 14px;font-weight:500;color:var(--ink-2)}

/* Journeys (how the products hand work to each other) */
.ps-journeys{display:grid;gap:18px}
.ps-journey{display:grid;gap:16px;padding:22px 24px;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm)}
.ps-journey__name{font-size:1.15rem;font-weight:800;letter-spacing:-.02em}
.ps-journey__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}
.ps-journey__note{font-size:.92rem;color:var(--muted)}
.ps-journey__steps{display:flex;align-items:center;gap:8px}
.ps-step{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;gap:9px;padding:8px 14px 8px 8px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);font-size:13.5px;font-weight:600}
[data-ps-theme="dark"] .ps-step{background:color-mix(in srgb,var(--pb-text-soft) 8%,transparent)}
.ps-step .ps-mark{--mark:28px;border-radius:9px}
.ps-step small{display:block;font-size:11px;font-weight:500;color:var(--faint);line-height:1.2}
.ps-journey__steps>.ps-icon{color:var(--gold-600)}
[data-ps-theme="dark"] .ps-journey__steps>.ps-icon{color:var(--gold-400)}

/* Numbered steps */
.ps-steps{display:grid;gap:20px;counter-reset:ps-step}
.ps-steps--row{grid-template-columns:repeat(4,minmax(0,1fr))}
.ps-steps>li{position:relative;padding:26px 24px 24px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);counter-increment:ps-step}
.ps-steps>li::before{content:counter(ps-step,decimal-leading-zero);display:block;margin-bottom:14px;font-size:2rem;font-weight:800;letter-spacing:-.04em;line-height:1;background:linear-gradient(135deg,var(--gold-600),var(--gold-300));-webkit-background-clip:text;background-clip:text;color:transparent}
.ps-steps h3{font-size:1.05rem;font-weight:700}
.ps-steps p{margin-top:8px!important;font-size:.95rem;color:var(--muted)}

/* Facts band */
.ps-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid color-mix(in srgb,var(--pb-band-text) 20%,transparent);background:color-mix(in srgb,var(--pb-band-text) 20%,transparent)}
.ps-fact{padding:34px 24px;background:color-mix(in srgb,var(--navy-850) 72%,transparent);text-align:center}
.ps-fact strong{display:block;font-size:clamp(2.4rem,4.5vw,3.6rem);font-weight:800;letter-spacing:-.04em;line-height:1;background:linear-gradient(135deg,var(--on-dark) 10%,var(--pb-band-highlight) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.ps-fact span{display:block;margin-top:12px;font-size:.95rem;color:var(--on-dark-muted)}

/* Split: text beside a panel */
.ps-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,6vw,80px);align-items:center}
.ps-split--flip>:first-child{order:2}
.ps-split h2{font-size:clamp(1.6rem,2.8vw,2.3rem);font-weight:800;line-height:1.14;letter-spacing:-.03em;margin-top:14px}
.ps-split p{margin-top:16px!important;color:var(--muted)}
.ps-split .ps-checks{margin-top:22px!important}
.ps-panel{padding:28px;border-radius:var(--radius-lg);border:1px solid var(--line);background:linear-gradient(160deg,var(--surface),var(--tint));box-shadow:var(--shadow-md)}
.ps-panel h3{font-size:1rem;font-weight:700}
.ps-panel__list{display:grid;gap:12px;margin-top:16px!important}
.ps-panel__list li{display:flex;gap:14px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.ps-panel__list .ps-card__icon{flex:none;width:38px;height:38px;border-radius:11px}
.ps-panel__list strong{display:block;font-size:.95rem}
.ps-panel__list span{display:block;font-size:.88rem;color:var(--muted)}

/* Team member photo (About page, shown only when the owner adds team members) */
.ps-member__photo{width:72px;height:72px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}

/* Outcomes */
.ps-outcome{padding-top:22px;border-top:2px solid var(--acc,var(--primary))}
.ps-outcome h3{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}
.ps-outcome p{margin-top:10px!important;color:var(--muted)}

/* FAQ */
.ps-faq{display:grid;gap:12px;max-width:820px;margin:0 auto}
.ps-faq__item{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);transition:border-color .2s,box-shadow .2s}
.ps-faq__item[open]{border-color:var(--line-2);box-shadow:var(--shadow-md)}
.ps-faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;font-size:1.02rem;font-weight:600;cursor:pointer;list-style:none}
.ps-faq__item summary::-webkit-details-marker{display:none}
.ps-faq__item summary .ps-icon{color:var(--accent);transition:transform .25s var(--ease)}
.ps-faq__item[open] summary .ps-icon{transform:rotate(45deg)}
.ps-faq__body{padding:0 22px 22px;color:var(--muted)}
.ps-faq__group{max-width:820px;margin:44px auto 16px!important;font-size:1.25rem;font-weight:800;letter-spacing:-.02em}
.ps-faq__group:first-child{margin-top:0!important}

/* CTA band */
.ps-cta{position:relative;isolation:isolate;overflow:hidden;color:var(--on-dark);background:radial-gradient(700px 320px at 12% 0%,color-mix(in srgb,var(--pb-glow-1) 50%,transparent),transparent 65%),radial-gradient(600px 300px at 95% 110%,color-mix(in srgb,var(--pb-glow-3) 28%,transparent),transparent 62%),linear-gradient(135deg,var(--navy-900),var(--navy-700))}
.ps-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px)}
.ps-cta__title{font-size:clamp(1.7rem,3vw,2.5rem);font-weight:800;letter-spacing:-.03em;line-height:1.12}
.ps-cta__text{margin-top:12px!important;max-width:36em;color:var(--on-dark-muted)}
.ps-cta__actions{display:flex;flex-wrap:wrap;gap:12px;flex:none}

/* Forms */
.ps-formwrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(24px,4vw,56px);align-items:start}
.ps-form{display:grid;gap:18px;padding:clamp(22px,3vw,34px);border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-md)}
.ps-form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.ps-field{display:grid;gap:7px;align-content:start}
.ps-field label,.ps-field legend{font-size:.875rem;font-weight:600;padding:0}
.ps-field label i{font-style:normal;color:var(--danger)}
.ps-input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink);font:inherit;font-size:.97rem;transition:border-color .2s,box-shadow .2s}
.ps-input::placeholder{color:var(--faint)}
.ps-input:hover{border-color:var(--faint)}
.ps-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--pb-focus-ring)}
textarea.ps-input{min-height:140px;resize:vertical}
select.ps-input{min-height:48px;cursor:pointer}
.ps-input[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--pb-text-danger) 14%,transparent)}
.ps-field__error{font-size:.82rem;color:var(--danger)}
.ps-hp{position:absolute!important;left:-9999px}
.ps-form__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}
.ps-form__note{font-size:.84rem;color:var(--faint);max-width:30em}
.ps-form__note a{color:var(--primary);text-decoration:underline}
.ps-alert{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:14px;border:1px solid var(--primary);background:var(--tint);color:var(--ink);font-size:.95rem}
.ps-alert .ps-icon{margin-top:2px;color:var(--primary)}
.ps-alert--error{border-color:var(--danger);background:var(--pb-status-bad-bg)}
.ps-alert--error .ps-icon{color:var(--danger)}
.ps-alert[hidden]{display:none}
.ps-aside{display:grid;gap:16px}
.ps-aside .ps-card{padding:22px}
.ps-contactline{display:flex;gap:12px;align-items:flex-start;margin-top:12px;font-size:.95rem;color:var(--muted)}
.ps-contactline .ps-icon{margin-top:3px;color:var(--accent)}
.ps-contactline a{color:var(--primary)}

/* Prose (legal pages, long text) */
.ps-prose{max-width:780px;margin:0 auto;font-size:1.02rem;color:var(--ink-2)}
.ps-prose h2{margin-top:44px!important;font-size:1.45rem;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.ps-prose h3{margin-top:28px!important;font-size:1.1rem;font-weight:700;color:var(--ink)}
.ps-prose p{margin-top:14px!important}
.ps-prose ul{margin-top:14px!important;padding-left:22px!important;list-style:disc!important}
.ps-prose li{margin-top:6px}
.ps-prose li::marker{color:var(--accent)}
.ps-prose a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.ps-prose__meta{padding:14px 18px;border-radius:14px;background:var(--tint);font-size:.92rem;color:var(--muted)}

/* a product this site does not run: offered on request (catalogue.py on_request) */
.ps-onrequest{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap;color:var(--accent);background:var(--tint-gold);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.ps-onrequest--light{color:var(--on-dark);background:color-mix(in srgb,var(--pb-band-text) 12%,transparent);border-color:color-mix(in srgb,var(--pb-band-text) 30%,transparent)}

.ps-pindex{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.ps-pindex__group{padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.ps-pindex__cat{margin-bottom:8px!important;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ps-pindex li+li{margin-top:2px}
.ps-pindex a{display:flex;align-items:center;gap:10px;padding:5px 6px;margin:0 -6px;border-radius:10px;font-size:.93rem;font-weight:500;color:var(--ink);transition:background-color .2s}
.ps-pindex a:hover{background:color-mix(in srgb,var(--acc-l,var(--primary)) 12%,transparent)}

/* ---------- Footer ---------- */
/* It follows the page's mode (light and airy, or deep and glowing) in every theme; colours are palette tokens only.
   Lead / product directory / link columns / legal bar / signature wordmark (templates/palbon_site/footer.html). */
.ps-footer{--f-line:color-mix(in srgb,var(--ink) 10%,transparent);position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,var(--surface-2),var(--bg) 38%);color:var(--muted);border-top:1px solid var(--f-line)}
.ps-footer::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,var(--pb-chart-1),var(--pb-chart-3),var(--pb-chart-5),var(--pb-chart-2),transparent);background-size:200% 100%;animation:ps-fline 9s linear infinite;opacity:.9}
.ps-footer ul{margin:0;padding:0;list-style:none}
.ps-footer a{color:inherit;text-decoration:none}
.ps-footer__glow{position:absolute;inset:0;z-index:-1;pointer-events:none}
.ps-footer__glow i{position:absolute;width:46vw;height:46vw;max-width:640px;max-height:640px;border-radius:50%;filter:blur(90px);opacity:.16;animation:ps-fglow 26s ease-in-out infinite alternate}
.ps-footer__glow i:nth-child(1){top:-30%;left:-10%;background:var(--pb-glow-1)}
.ps-footer__glow i:nth-child(2){top:10%;right:-14%;background:var(--pb-glow-2);animation-delay:-9s}
.ps-footer__glow i:nth-child(3){bottom:-40%;left:35%;background:var(--pb-glow-3);animation-delay:-17s;opacity:.12}
[data-ps-theme="dark"] .ps-footer__glow i{opacity:.26}
.ps-footer__lead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 40px;padding:clamp(56px,7vw,88px) 0 clamp(36px,4vw,48px);border-bottom:1px solid var(--f-line)}
.ps-brand--footer{color:var(--ink)}
.ps-footer__claim{margin-top:22px!important;font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:800;letter-spacing:-.035em;line-height:1.08;color:var(--ink)}
.ps-footer__claim span{display:inline-block;background:linear-gradient(100deg,var(--pb-chart-1),var(--pb-chart-3) 45%,var(--pb-chart-5));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:ps-fline 12s linear infinite}
.ps-footer__text{margin-top:12px!important;max-width:36em;font-size:.95rem;line-height:1.65}
.ps-footer__actions{display:flex;flex-wrap:wrap;gap:12px}
.ps-footer__title{display:flex;align-items:center;gap:14px;margin-bottom:18px!important;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
/* the link columns */
.ps-footer__cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:32px;padding:clamp(40px,5vw,56px) 0}
.ps-footer__col li+li{margin-top:10px}
.ps-footer__col a{display:inline-flex;align-items:center;gap:6px;font-size:.93rem;background:linear-gradient(90deg,var(--pb-chart-1),var(--pb-chart-3)) no-repeat left bottom/0 1.5px;padding-bottom:2px;transition:color .2s,background-size .35s var(--ease)}
.ps-footer__col a:hover,.ps-footer__col a:focus-visible{color:var(--ink);background-size:100% 1.5px}
.ps-footer__more{font-weight:600;color:var(--primary)!important}
.ps-footer__more .ps-icon{transition:transform .25s var(--ease)}
.ps-footer__more:hover .ps-icon{transform:translateX(3px)}
.ps-footer__icon{display:inline-grid;place-items:center;width:30px;height:30px;margin-right:4px;border-radius:10px;color:var(--ink);background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid var(--f-line);transition:transform .3s var(--ease),color .3s,border-color .3s,box-shadow .3s}
.ps-footer__social{background:none!important;padding-bottom:0}
.ps-footer__social:hover .ps-footer__icon,.ps-footer__social:focus-visible .ps-footer__icon{transform:translateY(-2px) rotate(-6deg);color:var(--pb-chart-1);border-color:color-mix(in srgb,var(--pb-chart-1) 50%,transparent);box-shadow:0 10px 22px -12px var(--pb-chart-1)}
.ps-footer__col li:has(.ps-footer__social)+li{margin-top:12px}
.ps-footer__lock{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:6px;background:var(--tint);color:var(--primary)}
/* the legal bar and the back-to-top ring (palbon_site.js sets --ps-scroll, 0 to 1) */
.ps-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;padding:22px 0 26px;border-top:1px solid var(--f-line);font-size:.85rem}
.ps-footer__bottom>p{margin-right:auto!important}
.ps-footer__legal{display:flex;flex-wrap:wrap;gap:6px 22px}
.ps-footer__legal a:hover{color:var(--ink)}
.ps-totop{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--ink);background:color-mix(in srgb,var(--surface) 80%,transparent);transition:transform .3s var(--ease),box-shadow .3s}
.ps-totop:hover{transform:translateY(-3px);box-shadow:0 12px 26px -12px var(--pb-chart-1)}
.ps-totop .ps-icon{transition:transform .3s var(--ease)}
.ps-totop:hover .ps-icon{transform:translateY(-2px)}
.ps-totop__ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.ps-totop__ring circle{fill:none;stroke:var(--f-line);stroke-width:2}
.ps-totop__ring .ps-totop__value{stroke:var(--pb-chart-1);stroke-linecap:round;stroke-dasharray:calc(var(--ps-scroll,0) * 100) 100;transition:stroke-dasharray .15s linear}
/* the signature: the brand, oversized, a slow gradient, rising as the footer comes into view */
.ps-footer__sign{margin:8px 0 -0.1em!important;font-size:clamp(5rem,21vw,19rem);font-weight:800;letter-spacing:-.06em;line-height:.82;text-align:center;white-space:nowrap;user-select:none;background:linear-gradient(90deg,var(--pb-chart-1),var(--pb-chart-3),var(--pb-chart-5),var(--pb-chart-2),var(--pb-chart-1));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.42;-webkit-mask-image:linear-gradient(180deg,var(--ink) 45%,transparent 100%);mask-image:linear-gradient(180deg,var(--ink) 45%,transparent 100%);animation:ps-fline 18s linear infinite}
[data-ps-theme="dark"] .ps-footer__sign{opacity:.42}
@supports (animation-timeline:view()){
.ps-footer__sign{animation:ps-fline 18s linear infinite,ps-frise linear both;animation-timeline:auto,view();animation-range:normal,entry 0% cover 45%}
.ps-footer__col{animation:ps-fcard linear both;animation-timeline:view();animation-range:entry 0% cover 18%}
}
@keyframes ps-fline{to{background-position:-200% 0}}
@keyframes ps-fglow{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(5vw,6vh,0) scale(1.15)}}
@keyframes ps-frise{from{transform:translateY(38%);opacity:0}to{transform:none}}
@keyframes ps-fcard{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
@media (max-width:1080px){.ps-footer__cols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.ps-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.ps-footer__lead{align-items:flex-start}.ps-footer__bottom>p{flex-basis:100%}}
@media (prefers-reduced-motion:reduce){.ps-footer::before,.ps-footer__claim span,.ps-footer__glow i,.ps-footer__sign,.ps-footer__col{animation:none!important}}

/* ---------- Reveal on scroll (only when the script runs) ---------- */
.ps-js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.ps-js [data-reveal].is-in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
.ps-bento{grid-template-columns:repeat(2,minmax(0,1fr))}
.ps-bento .ps-pcard--feature{grid-row:auto}
.ps-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
.ps-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
.ps-journey__steps{flex-wrap:wrap}
.ps-step{flex:0 1 auto}
.ps-steps--row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:960px){
.ps-burger{display:inline-grid}
.ps-header__tools{margin-left:auto}
.ps-nav{position:fixed;inset:var(--header-h) 0 0 0;display:none;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:12px 24px 32px;background:var(--bg);color:var(--ink);overflow-y:auto}
/* a backdrop-filter makes the header the containing block of its fixed children: the panel below would get no height */
.ps-header.is-open{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg)}
.ps-header.is-open .ps-nav{display:flex}
.ps-nav__list{flex-direction:column;align-items:stretch;gap:0;margin:0!important}
.ps-nav__item{border-bottom:1px solid var(--line)}
.ps-nav__link{width:100%;justify-content:space-between;padding:16px 4px;border-radius:0;font-size:1.05rem;opacity:1}
.ps-nav__link:hover,.ps-nav__link.is-active,.ps-nav__link[aria-expanded="true"]{background:none;color:var(--primary)}
.ps-nav__actions{flex-direction:column;align-items:stretch;gap:10px;margin-top:24px}
.ps-nav__actions .ps-btn{padding:14px 18px;font-size:1rem}
.ps-nav__actions .ps-btn--quiet{border-color:var(--line-2)}
.ps-hero__grid,.ps-prodhero,.ps-split,.ps-formwrap{grid-template-columns:1fr}
.ps-split--flip>:first-child{order:0}
.ps-stage{max-width:620px;margin:0 auto;width:100%}
.ps-window{transform:none}
.ps-float--b{left:-6px}
.ps-float--c{right:-6px}
.ps-cta__inner{flex-direction:column;align-items:flex-start}
.ps-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
:root{--header-h:64px}
.ps-container{padding-left:18px;padding-right:18px}
.ps-brand__tag{display:none}
.ps-bento,.ps-grid--2,.ps-grid--3,.ps-grid--4,.ps-form__row,.ps-steps--row{grid-template-columns:1fr}
.ps-bento .ps-pcard--feature{grid-column:auto;padding:24px}
.ps-bento .ps-pcard--feature .ps-pcard__name{font-size:1.6rem}
.ps-bento .ps-pcard--feature .ps-pcard__list{grid-template-columns:1fr}
.ps-hero__actions .ps-btn,.ps-cta__actions .ps-btn{width:100%}
.ps-cta__actions{width:100%}
.ps-kpis{grid-template-columns:repeat(2,1fr)}
.ps-kpis .ps-kpi:last-child{display:none}
.ps-float--c{display:none}
.ps-float--a{right:0}
.ps-float--b{left:0}
.ps-journey{padding:18px}
.ps-journey__steps{flex-direction:column;align-items:stretch}
.ps-journey__steps>.ps-icon{transform:rotate(90deg);margin:0 auto}
.ps-fact{padding:26px 14px}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
.ps *,.ps *::before,.ps *::after{animation:none!important;transition:none!important}
.ps-js [data-reveal]{opacity:1;transform:none}
}
@media print{
.ps-header,.ps-footer,.ps-cta,.ps-stage{display:none}
.ps-dark{background:none;color:#000}
.ps-phero__title,.ps-hero__title{color:#000}
}

/* ===== help pages ===== */
/* PALBON: /help (index) and /help/<product> (templates/palbon_site/help.html). Two columns: a sticky
   list of topics and the topics themselves; one column below 960px, where the list folds away above
   the text. A topic is an anchor target of the product apps, so the one in location.hash is lit in
   gold. html already has scroll-padding-top for the fixed header; scroll-margin-top adds the air. */
.ps-help{display:grid;grid-template-columns:minmax(0,272px) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
.ps-help__hero{margin-top:26px}
.ps-help__hero .ps-phero__title{margin-top:22px!important;font-size:clamp(1.9rem,3.4vw,2.8rem)}
.ps-help__toc{position:sticky;top:calc(var(--header-h) + 20px);max-height:calc(100vh - var(--header-h) - 40px);overflow-y:auto;overscroll-behavior:contain;padding:20px 18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);scrollbar-width:thin}
.ps-help__toc>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);cursor:default;pointer-events:none}
.ps-help__toc>summary::-webkit-details-marker{display:none}
.ps-help__toc>summary .ps-icon{display:none;transition:transform .2s var(--ease)}
.ps-help__toc[open]>summary .ps-icon{transform:rotate(180deg)}
.ps-help__tocgroup{margin-top:18px!important;font-size:13.5px;font-weight:700;line-height:1.35;color:var(--ink)}
.ps-help__tocgroup a:hover{color:var(--primary)}
.ps-help__toclist{margin-top:8px!important;border-left:1px solid var(--line-2)}
.ps-help__toclist a{display:block;margin-left:-1px;padding:5px 0 5px 14px;border-left:2px solid transparent;font-size:13.5px;line-height:1.4;color:var(--muted);transition:color .2s,border-color .2s}
.ps-help__toclist a:hover{color:var(--primary);border-left-color:var(--primary)}
.ps-help__body{min-width:0}
.ps-help__group{margin-top:56px!important;padding-bottom:14px;border-bottom:1px solid var(--line);font-size:clamp(1.3rem,2vw,1.6rem);font-weight:800;line-height:1.2;letter-spacing:-.025em;scroll-margin-top:12px}
.ps-help__group:first-child{margin-top:0!important}
.ps-help__topic{position:relative;margin-top:18px;padding:24px 26px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);scroll-margin-top:12px;transition:border-color .3s,box-shadow .3s}
.ps-help__topic:target{border-color:var(--gold-500);box-shadow:0 0 0 4px var(--tint-gold),var(--shadow-md)}
.ps-help__topic:target::before{content:"";position:absolute;left:-1px;top:22px;bottom:22px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--gold-300),var(--gold-600))}
.ps-help__title{font-size:1.18rem;font-weight:700;line-height:1.3;letter-spacing:-.015em;color:var(--ink)}
.ps-help__title a::after{content:"#";margin-left:8px;font-weight:600;color:var(--faint);opacity:0;transition:opacity .2s}
.ps-help__title a:hover::after,.ps-help__title a:focus-visible::after{opacity:1}
.ps-help__topic:target .ps-help__title a::after{opacity:1;color:var(--accent)}
.ps-help__where{display:inline-flex;align-items:flex-start;gap:7px;margin-top:10px!important;padding:5px 12px 5px 9px;border-radius:12px;background:var(--tint);font-size:13px;font-weight:600;line-height:1.4;color:var(--primary)}
.ps-help__where .ps-icon{margin-top:2px}
.ps-help__topic>p:not([class]){margin-top:14px;font-size:1rem;color:var(--ink-2)}
.ps-help__how{margin-top:20px!important;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.ps-help__steps{display:grid;gap:10px;margin-top:12px!important;counter-reset:ps-help-step}
.ps-help__steps li{position:relative;min-height:26px;padding-left:40px;font-size:.97rem;color:var(--ink-2);counter-increment:ps-help-step}
.ps-help__steps li::before{content:counter(ps-help-step);position:absolute;left:0;top:0;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--tint);font-size:12.5px;font-weight:700;color:var(--primary)}
.ps-help__terms{display:grid;gap:0;margin:12px 0 0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.ps-help__terms>div{display:grid;grid-template-columns:minmax(0,15em) minmax(0,1fr);gap:4px 18px;padding:10px 14px;font-size:.93rem}
.ps-help__terms>div+div{border-top:1px solid var(--line)}
.ps-help__terms dt,.ps-help__terms dd{margin:0;min-width:0}
.ps-help__terms dd{color:var(--muted)}
.ps-help code{padding:2px 7px;border-radius:6px;border:1px solid var(--line);background:var(--surface-2);font-family:var(--pb-font-mono);font-size:.86em;color:var(--ink);overflow-wrap:anywhere}
.ps-help__more{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;font-weight:600;color:var(--muted)}
.ps-help__more .ps-chip{color:var(--ink)}
.ps-help__more .ps-chip:hover{border-color:var(--acc)}
.ps-help__cards{max-width:920px;margin:0 auto}
.ps-help__note{max-width:720px;margin:36px auto 0!important;text-align:center;font-size:.95rem;color:var(--muted)}
@media (max-width:960px){
.ps-help{grid-template-columns:1fr;gap:24px}
.ps-help__toc{position:static;max-height:none;padding:16px 18px}
.ps-help__toc>summary{cursor:pointer;pointer-events:auto}
.ps-help__toc>summary .ps-icon{display:block}
}
@media (max-width:640px){
.ps-help__topic{padding:20px 18px}
.ps-help__terms>div{grid-template-columns:1fr}
}
@media print{
.ps-help{grid-template-columns:1fr}
.ps-help__toc{display:none}
.ps-help__topic{box-shadow:none;break-inside:avoid}
}
/* ===== end of help pages ===== */

/* ===== account menu of a signed-in visitor (every page: templates/palbon_site/header.html) =====
   The markup is in the shared header, hidden; palbon_site.js shows it and fills in the initials and the
   name from the session cookies (pages may be cached, so the server writes nothing about the user). */
.ps-account{position:relative;flex:none;margin:0 4px 0 2px}
.ps-account__button{display:grid;place-items:center;width:40px;height:40px;border:2.5px solid transparent;border-radius:50%;background:var(--pb-grad-primary) padding-box;color:var(--pb-text-on-accent);font-size:13px;font-weight:700;letter-spacing:.03em;line-height:1;box-shadow:0 0 0 1.5px var(--pb-accent-secondary);transition:transform .2s var(--ease),box-shadow .2s}
.ps-account__button:hover,.ps-account__button[aria-expanded="true"]{transform:translateY(-1px);box-shadow:0 0 0 1.5px var(--pb-accent-secondary),var(--pb-shadow-glow)}
.ps .ps-account__button:focus-visible{outline-offset:4px;border-radius:50%}
.ps-account__menu{position:absolute;top:calc(100% + 14px);right:0;z-index:60;width:252px;padding:8px;border-radius:18px;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:ps-pop .18s var(--ease)}
.ps-account__menu[hidden]{display:none}
.ps-account__who{display:flex;flex-direction:column;gap:2px;margin:0 0 6px!important;padding:8px 10px 12px;border-bottom:1px solid var(--line);line-height:1.3}
.ps-account__name{font-size:14.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-account__id{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-account__id:empty{display:none}
.ps-account__link{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 10px;border-radius:11px;font-size:14.5px;font-weight:500;line-height:1.3;transition:background-color .2s,color .2s}
.ps-account__link .ps-icon{color:var(--muted);transition:color .2s}
.ps-account__link:hover,.ps-account__link:focus-visible{background:var(--surface-2);color:var(--primary)}
.ps-account__link:hover .ps-icon,.ps-account__link:focus-visible .ps-icon{color:var(--primary)}
[data-ps-theme="dark"] .ps-account__link:hover,[data-ps-theme="dark"] .ps-account__link:focus-visible{background:color-mix(in srgb,var(--pb-text-soft) 10%,transparent)}
.ps-account__link--out{position:relative;margin-top:13px}
.ps-account__link--out::before{content:"";position:absolute;left:2px;right:2px;top:-7px;height:1px;background:var(--line)}
@media (max-width:420px){.ps-account__menu{right:-88px;width:min(252px,calc(100vw - 32px))}}
/* ===== end of account menu ===== */

/* Process handbook (/handbook): generated pages, so the prose styles carry most of it. */
.ps-phero__meta{margin-top:14px;font-size:13.5px;letter-spacing:.02em;color:var(--on-dark-muted)}
.ps-hb{display:grid;grid-template-columns:260px minmax(0,1fr);gap:40px;align-items:start}
.ps-hb__nav{min-width:0}
.ps-hb__toc{position:sticky;top:calc(var(--header-h) + 20px);max-height:calc(100vh - var(--header-h) - 40px);overflow-y:auto;overscroll-behavior:contain;padding:20px 18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);scrollbar-width:thin}
.ps-hb__toc>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);cursor:pointer}
.ps-hb__toc>summary::-webkit-details-marker{display:none}
.ps-hb__suite{margin-top:16px!important;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.ps-hb__toc ul{margin-top:6px!important;border-left:1px solid var(--line-2);list-style:none;padding-left:0}
.ps-hb__toc li a{display:block;margin-left:-1px;padding:5px 0 5px 14px;border-left:2px solid transparent;font-size:13px;line-height:1.4;color:var(--muted)}
.ps-hb__toc li a:hover{color:var(--primary);border-left-color:var(--primary)}
.ps-hb__toc li.is-current a{color:var(--primary);font-weight:600;border-left-color:var(--primary)}
.ps-hb__body{min-width:0}
.ps-hb__body h2{margin-top:52px!important;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:clamp(1.3rem,2vw,1.6rem);font-weight:800;letter-spacing:-.025em}
.ps-hb__body h3{margin-top:34px!important;font-size:1.1rem;font-weight:700;letter-spacing:-.015em}
.ps-hb__body table{display:block;overflow-x:auto;width:100%;margin-top:14px;border-collapse:collapse;font-size:13.5px}
.ps-hb__body th,.ps-hb__body td{padding:8px 10px;border:1px solid var(--line);vertical-align:top;text-align:left}
.ps-hb__body th{background:var(--surface-2);font-weight:600;color:var(--muted)}
.ps-hb__body details{margin-top:14px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.ps-hb__body details>summary{cursor:pointer;font-weight:600;font-size:14px}
.ps-hb__mermaid pre{overflow-x:auto;font-size:12px}
.ps-note{margin-top:16px;padding:14px 18px;border-radius:var(--radius);border:1px solid var(--line);border-left-width:4px;background:var(--surface-2);font-size:14px}
.ps-note--info{border-left-color:var(--primary)}
.ps-note--warn{border-left-color:var(--gold-500)}
.ps-note--bad{border-left-color:var(--danger)}
.ps-note--good{border-left-color:var(--pb-accent-vivid)}
.ps-hb__suitehead{margin-top:44px!important;font-size:1.25rem;font-weight:800;letter-spacing:-.02em}
.ps-hb__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:16px}
.ps-hb__card{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s,transform .2s}
.ps-hb__card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.ps-hb__id{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--accent)}
.ps-hb__title{flex:1;font-size:14px;font-weight:600;color:var(--ink)}
.ps-hb__pager{display:flex;justify-content:space-between;gap:12px;margin-top:40px}
@media (max-width:900px){.ps-hb{grid-template-columns:1fr}.ps-hb__toc{position:static;max-height:none}}
.ps-prose table{display:block;overflow-x:auto;width:100%;margin-top:14px;border-collapse:collapse;font-size:13.5px}
.ps-prose th,.ps-prose td{padding:8px 10px;border:1px solid var(--line);vertical-align:top;text-align:left}
.ps-prose th{background:var(--surface-2);font-weight:600;color:var(--muted)}

/* Application guide (/guide): the flow diagram is plain SVG, so it works with no script and prints. */
.ps-flow{--flow-on:var(--pb-bg-tint);--flow-on-line:var(--pb-accent-vivid);--flow-off:var(--pb-bg-raised);--flow-off-line:var(--pb-border-strong);max-width:100%;height:auto;margin-top:8px;color:var(--muted)}
.ps-flow__stage{font-size:10px;font-weight:700;letter-spacing:.1em;fill:var(--accent)}
.ps-flow__label{font-size:12px;fill:var(--ink)}
.ps-flow__link{stroke:var(--line-2);stroke-width:1.5;fill:none}
.ps-flow__key .ps-flow__label{font-size:11px;fill:var(--muted)}
.ps-hb--solo{grid-template-columns:minmax(0,1fr)}

/* API reference (/api-docs): endpoint cards, method chips, parameter tables. Tokens only, light and dark. */
.ps-api__filter{position:sticky;top:calc(var(--header-h) + 8px);z-index:2;display:flex;align-items:center;gap:12px;padding:10px 0 14px;background:var(--bg)}
.ps-api__search{flex:1;display:flex;align-items:center;gap:8px}
.ps-api__search input{width:100%;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:14px}
.ps-api__search input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.ps-api__hits{font-size:12.5px;color:var(--muted);white-space:nowrap}
.ps-api__ep{margin-top:12px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}
.ps-api__ep:target{border-color:var(--gold-500);box-shadow:0 0 0 4px var(--tint-gold)}
.ps-api__ephead{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.ps-api__verbs{display:inline-flex;gap:6px}
.ps-api__verb{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--pb-status-info-text);background:var(--pb-status-info-bg)}
.ps-api__verb--get{background:var(--pb-status-info-bg);color:var(--pb-status-info-text)}
.ps-api__verb--post{background:var(--pb-status-ok-bg);color:var(--pb-status-ok-text)}
.ps-api__verb--put,.ps-api__verb--patch{background:var(--pb-status-warn-bg);color:var(--pb-status-warn-text)}
.ps-api__verb--delete{background:var(--pb-status-bad-bg);color:var(--pb-status-bad-text)}
.ps-api__path{flex:1;min-width:240px;font-size:13px;word-break:break-all;color:var(--ink)}
.ps-api__auth{padding:2px 9px;border-radius:999px;border:1px solid var(--line-2);font-size:11.5px;color:var(--muted);white-space:nowrap}
.ps-api__auth--open{border-color:var(--gold-500);color:var(--gold-700);background:var(--tint-gold)}
.ps-api__sum{margin-top:8px;font-size:14px;color:var(--muted)}
.ps-api__more{margin-top:10px}
.ps-api__more>summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--primary);list-style:none}
.ps-api__more>summary::-webkit-details-marker{display:none}
.ps-api__params{width:100%;margin-top:12px;border-collapse:collapse;font-size:13px}
.ps-api__params th,.ps-api__params td{padding:6px 10px;border:1px solid var(--line);text-align:left;vertical-align:top}
.ps-api__params th{background:var(--surface-2);font-weight:600;color:var(--muted)}
.ps-api__none{margin-top:10px;font-size:13px;color:var(--faint)}
.ps-api__curl{margin-top:12px;padding:14px 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2);overflow-x:auto;font-size:12.5px;line-height:1.55}
.ps-api__src{margin-top:10px;font-size:12px;color:var(--faint)}
.ps-api__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:16px}
.ps-api__card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s,transform .2s}
.ps-api__card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.ps-api__cardhead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:700;color:var(--ink)}
.ps-api__blurb{font-size:13px;color:var(--muted)}
.ps-api__open{font-size:11.5px;color:var(--gold-700)}
.ps-api__count{padding:1px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:11.5px;font-weight:600;color:var(--muted)}
.ps-hb__body h2{scroll-margin-top:90px}
.ps-hb__body p{margin-top:12px;line-height:1.65}
.ps-hb__body ul,.ps-hb__body ol{margin-top:12px;padding-left:22px;list-style:disc}
.ps-hb__body ol{list-style:decimal}
.ps-hb__body li{margin-top:6px;line-height:1.6}
.ps-hb__body h3{margin-top:28px!important}
