/* POCA API reference: shared design system.
   Rules: DM Sans only. No borders, no gradients, no drop shadows.
   Separation comes from Material 3 tonal surface fills, shape, and space. */
:root{
  --surface-dim:#efe3cf;
  --surface:#f7efe2;
  --surface-bright:#fdf8ef;
  --surface-container-lowest:#fdf8ef;
  --surface-container-low:#f1e6d2;
  --surface-container:#ebdcc2;
  --surface-container-high:#e3d0af;
  --surface-container-highest:#dbc49d;
  --on-surface:#241a10;
  --on-surface-variant:#63513c;
  --primary:#8f5117;
  --on-primary:#fff4e4;
  --primary-container:#f4d9ae;
  --on-primary-container:#3d2606;
  --secondary-container:#e7d4b0;
  --on-secondary-container:#41300f;
  --tertiary:#5c5228;
  --tertiary-container:#ded3a4;
  --on-tertiary-container:#2c260a;
  --inverse-surface:#201c19;
  --inverse-on-surface:#ffddba;
  --inverse-primary:#ffb866;
  --hue-suite:#8f5117;  --wash-suite:#f3e0c0;
  --hue-pac:#96361c;    --wash-pac:#f5d9c8;
  --hue-util:#5c5228;   --wash-util:#e9e2c0;
  --hue-git:#201c19;    --wash-git:#e4dcd0;
  --radius-xl:32px;
  --radius-l:24px;
  --radius-m:16px;
  --radius-s:10px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"DM Sans",sans-serif;background:var(--surface);color:var(--on-surface);line-height:1.55;font-size:17px;-webkit-font-smoothing:antialiased}
::selection{background:var(--primary-container);color:var(--on-primary-container)}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
.wrap{max-width:1120px;margin:0 auto;padding-left:24px;padding-right:24px}

/* ---------- top bar (hover-peek header) ---------- */
.topbar{position:sticky;top:10px;z-index:50;max-width:1120px;margin:10px auto 0;padding:0 12px}
.topbar-pill{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface-container-low);border-radius:999px;padding:8px 10px 8px 22px;transition:background-color .3s ease}
.topbar[data-peek="suite"] .topbar-pill{background:var(--wash-suite)}
.topbar[data-peek="pac"] .topbar-pill{background:var(--wash-pac)}
.topbar[data-peek="util"] .topbar-pill{background:var(--wash-util)}
.topbar[data-peek="git"] .topbar-pill{background:var(--wash-git)}
.brand-zone{position:relative;flex:1;min-width:0;height:40px;display:flex;align-items:center}
.brand{display:flex;align-items:center;gap:12px;color:var(--on-surface);transition:opacity .25s ease,transform .25s ease}
.brand svg{width:72px;height:auto;display:block}
.brand .brand-mini{display:none}
.brand-tag{font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--on-surface-variant);white-space:nowrap}
.peek{position:absolute;inset:0;display:flex;align-items:center;gap:11px;opacity:0;transform:translateY(7px);transition:opacity .25s ease,transform .25s ease;pointer-events:none;font-size:.92rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.peek svg{width:26px;height:26px;flex:none}
.peek span{overflow:hidden;text-overflow:ellipsis}
.peek-suite{color:var(--hue-suite)}
.peek-pac{color:var(--hue-pac)}
.peek-util{color:var(--hue-util)}
.peek-git{color:var(--hue-git)}
.topbar[data-peek] .brand{opacity:0;transform:translateY(-7px)}
.topbar[data-peek="suite"] .peek-suite,
.topbar[data-peek="pac"] .peek-pac,
.topbar[data-peek="util"] .peek-util,
.topbar[data-peek="git"] .peek-git{opacity:1;transform:none}
.nav{display:flex;gap:2px;flex:none}
.nav a{padding:9px 15px;border-radius:999px;font-size:.9rem;font-weight:700;color:var(--on-surface-variant);transition:color .2s,background-color .2s}
.nav a:hover{text-decoration:none;background:rgba(255,255,255,.45)}
.nav a[data-peek="suite"]:hover{color:var(--hue-suite)}
.nav a[data-peek="pac"]:hover{color:var(--hue-pac)}
.nav a[data-peek="util"]:hover{color:var(--hue-util)}
.nav a[data-peek="git"]:hover{color:var(--hue-git)}
@media (max-width:900px){.peek span{display:none}.peek svg{margin-left:2px}}
@media (max-width:760px){
  .brand-tag{display:none}
  .nav a{padding:8px 10px;font-size:.8rem}
  .topbar-pill{padding-left:16px}
}
@media (max-width:600px){
  .topbar-pill{padding:8px 10px 8px 14px}
  .topbar .brand-full{display:none}
  .brand .brand-mini{display:block;width:30px}
  .brand-zone{height:38px}
  .nav{flex-wrap:wrap;justify-content:flex-end}
}
@media (prefers-reduced-motion:reduce){.brand,.peek,.topbar-pill{transition:none}}

/* ---------- hero (overview) ---------- */
.hero{padding-top:64px;padding-bottom:40px}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.hero-art{order:-1;max-width:280px;margin:0 auto}}
.eyebrow{display:inline-block;background:var(--tertiary-container);color:var(--on-tertiary-container);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:8px 16px;border-radius:999px;margin-bottom:22px}
h1{font-size:clamp(2.5rem,5.6vw,4.1rem);font-weight:800;line-height:1.04;letter-spacing:-.02em}
h1 em{font-style:normal;color:var(--primary)}
.hero p.lede{margin-top:22px;font-size:1.13rem;max-width:56ch;color:var(--on-surface-variant)}
.hero p.lede strong{color:var(--on-surface)}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.chip{background:var(--secondary-container);color:var(--on-secondary-container);font-size:.85rem;font-weight:700;padding:9px 16px;border-radius:999px}
.chip.solid{background:var(--primary);color:var(--on-primary)}
.hero-art{position:relative}
.hero-art svg{width:100%;height:auto;display:block}

/* step-fret frame: pre-Columbian stepped corners, pure clip, no strokes */
.stepped{--st:14px;clip-path:polygon(
  0 calc(3*var(--st)),var(--st) calc(3*var(--st)),var(--st) calc(2*var(--st)),calc(2*var(--st)) calc(2*var(--st)),calc(2*var(--st)) var(--st),calc(3*var(--st)) var(--st),calc(3*var(--st)) 0,
  calc(100% - 3*var(--st)) 0,calc(100% - 3*var(--st)) var(--st),calc(100% - 2*var(--st)) var(--st),calc(100% - 2*var(--st)) calc(2*var(--st)),calc(100% - var(--st)) calc(2*var(--st)),calc(100% - var(--st)) calc(3*var(--st)),100% calc(3*var(--st)),
  100% calc(100% - 3*var(--st)),calc(100% - var(--st)) calc(100% - 3*var(--st)),calc(100% - var(--st)) calc(100% - 2*var(--st)),calc(100% - 2*var(--st)) calc(100% - 2*var(--st)),calc(100% - 2*var(--st)) calc(100% - var(--st)),calc(100% - 3*var(--st)) calc(100% - var(--st)),calc(100% - 3*var(--st)) 100%,
  calc(3*var(--st)) 100%,calc(3*var(--st)) calc(100% - var(--st)),calc(2*var(--st)) calc(100% - var(--st)),calc(2*var(--st)) calc(100% - 2*var(--st)),var(--st) calc(100% - 2*var(--st)),var(--st) calc(100% - 3*var(--st)),0 calc(100% - 3*var(--st))
)}
.hero-panel{background:var(--surface-container-high);padding:36px}

/* ---------- stat row ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:44px}
@media (max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--surface-container-low);border-radius:var(--radius-l);padding:22px 24px}
.stat-n{display:block;font-size:2.7rem;font-weight:800;line-height:1.1;color:var(--primary)}
.stat-l{font-size:.9rem;font-weight:700;color:var(--on-surface-variant)}

/* ---------- humanist statement band ---------- */
.statement{background:var(--inverse-surface);color:var(--inverse-on-surface);padding:clamp(36px,6vw,64px);--st:16px}
.statement .kicker{color:var(--inverse-primary)}
.statement-text{font-size:clamp(1.35rem,2.7vw,2.05rem);font-weight:800;line-height:1.3;letter-spacing:-.01em;max-width:34ch}

/* ---------- sections ---------- */
section{padding-top:56px;padding-bottom:28px}
.kicker{font-size:.8rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--primary);margin-bottom:10px}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem);font-weight:800;letter-spacing:-.015em;line-height:1.1}
.section-intro{margin-top:14px;max-width:64ch;color:var(--on-surface-variant)}
h3{font-size:1.22rem;font-weight:800;letter-spacing:-.01em}

/* ---------- animated reveal ---------- */
@media (prefers-reduced-motion:no-preference){
  .wheel{animation:spin 140s linear infinite;transform-origin:50% 50%}
  @keyframes spin{to{transform:rotate(360deg)}}
  .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
  .reveal.in{opacity:1;transform:none}
}

/* ---------- app cards / grids ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-top:34px}
.card-grid.small{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.app-card{background:var(--surface-container-low);border-radius:var(--radius-l);padding:26px 26px 24px;display:flex;flex-direction:column;gap:12px;transition:background-color .25s;color:var(--on-surface)}
a.app-card{text-decoration:none}
a.app-card:hover{background:var(--surface-container);text-decoration:none}
.app-card header{display:flex;align-items:center;gap:14px}
.app-card header .titles{flex:1;min-width:0}
.app-card h3{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.gloss{font-size:.86rem;font-weight:500;color:var(--on-surface-variant)}
.app-card p{font-size:.95rem;color:var(--on-surface-variant)}
.app-card p b{color:var(--on-surface);font-weight:700}
.app-icon{width:52px;height:52px;flex:none;color:var(--primary)}
.app-icon svg{width:100%;height:100%;display:block}
.type-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.t-chip{background:var(--surface-container-high);color:var(--on-surface);font-size:.76rem;font-weight:700;letter-spacing:.02em;padding:5px 11px;border-radius:999px}
.status{font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:5px 11px;border-radius:999px;background:var(--primary-container);color:var(--on-primary-container);white-space:nowrap}
.status.planned{background:var(--surface-container-high);color:var(--on-surface-variant)}
.util-card{background:var(--surface-container);border-radius:var(--radius-l);padding:26px;display:flex;flex-direction:column;gap:12px;color:var(--on-surface)}
a.util-card:hover{background:var(--surface-container-high);text-decoration:none}
.util-card .pkg{font-size:.8rem;font-weight:700;color:var(--primary)}
.util-card p{font-size:.95rem;color:var(--on-surface-variant)}
.util-card p b{color:var(--on-surface)}

/* ---------- pipeline ---------- */
.pipeline{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:34px;counter-reset:step}
@media (max-width:900px){.pipeline{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.pipeline{grid-template-columns:1fr}}
.step{background:var(--surface-container-low);border-radius:var(--radius-l);padding:24px;counter-increment:step}
.step::before{content:counter(step,decimal-leading-zero);display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:var(--on-primary);font-weight:800;font-size:.95rem;width:44px;height:44px;border-radius:14px;margin-bottom:16px}
.step h3{margin-bottom:8px}
.step p{font-size:.93rem;color:var(--on-surface-variant)}

/* ---------- inline code + blocks ---------- */
.code{font-weight:700;font-size:.88em;background:var(--surface-container-high);color:var(--on-surface);padding:2px 7px;border-radius:7px;white-space:nowrap}
@media (max-width:700px){p .code,li .code{white-space:normal;overflow-wrap:anywhere}}
.step .code,.app-card .code{background:var(--surface-container-highest)}
pre.block{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--radius-m);padding:20px 22px;margin-top:18px;overflow-x:auto;font-family:"DM Sans",sans-serif;font-size:.88rem;font-weight:500;line-height:1.6;letter-spacing:.01em;white-space:pre}
pre.block .k{color:var(--inverse-primary);font-weight:700}
pre.block .c{opacity:.55}

/* ---------- reference blocks + tables ---------- */
.ref-block{background:var(--surface-container-lowest);border-radius:var(--radius-xl);padding:34px;margin-top:26px}
.ref-block>p{color:var(--on-surface-variant);max-width:70ch;margin-top:10px}
.ref-block>p b{color:var(--on-surface)}
.table-scroll{overflow-x:auto;background:var(--surface-container-low);border-radius:var(--radius-m);margin-top:20px}
table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:560px}
th{text-align:left;font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--on-surface-variant);padding:16px 18px 10px}
td{padding:11px 18px;vertical-align:top}
tbody tr:nth-child(odd) td{background:var(--surface-container)}
td:first-child{white-space:nowrap;font-weight:700}
.req{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--primary-container);color:var(--on-primary-container)}
.opt{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--surface-container-high);color:var(--on-surface-variant)}
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}
@media (max-width:760px){.tier-grid{grid-template-columns:1fr}}
.tier{border-radius:var(--radius-l);padding:24px}
.tier h4{font-size:1rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.tier p{font-size:.92rem}
.tier.core{background:var(--primary-container);color:var(--on-primary-container)}
.tier.bundled{background:var(--secondary-container);color:var(--on-secondary-container)}
.tier.unlockable{background:var(--tertiary-container);color:var(--on-tertiary-container)}
.pill-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.pill-list .code{padding:8px 14px;border-radius:999px;font-size:.88rem}
.constraints{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:20px;list-style:none}
.constraints li{background:var(--surface-container-low);border-radius:var(--radius-m);padding:16px 18px;font-size:.92rem;color:var(--on-surface-variant)}
.constraints li b{color:var(--on-surface)}
.note{background:var(--tertiary-container);color:var(--on-tertiary-container);border-radius:var(--radius-m);padding:18px 22px;font-size:.93rem;margin-top:20px}
.note b{font-weight:800}
.note a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ---------- subpage hero ---------- */
.crumbs{padding-top:26px;font-size:.86rem;font-weight:700;color:var(--on-surface-variant)}
.crumbs a{color:var(--on-surface-variant)}
.crumbs span{opacity:.5;margin:0 6px}
.page-hero{padding-top:28px;padding-bottom:8px;display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.page-hero .app-icon{width:96px;height:96px;background:var(--surface-container-high);border-radius:28px;padding:18px;color:var(--primary)}
.page-hero .app-icon.stepped{border-radius:0;--st:8px}
.page-hero .titles{flex:1;min-width:260px}
.page-hero h1{font-size:clamp(2.1rem,4.5vw,3.2rem)}
.page-hero .pkg{font-size:.92rem;font-weight:700;color:var(--primary);margin-top:6px}
.page-hero .lede{margin-top:10px;font-size:1.05rem;color:var(--on-surface-variant);max-width:62ch}
.page-hero .chips{margin-top:14px}

/* ---------- prev/next + footer ---------- */
.pager{display:flex;justify-content:space-between;gap:14px;margin-top:44px}
.pager a{background:var(--surface-container-low);border-radius:var(--radius-l);padding:18px 22px;font-weight:700;flex:1;transition:background-color .25s}
.pager a:hover{background:var(--surface-container);text-decoration:none}
.pager a.next{text-align:right}
.pager .dir{display:block;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--on-surface-variant);margin-bottom:4px}
footer{background:var(--inverse-surface);color:var(--inverse-on-surface);margin-top:56px;padding:64px 0 48px;border-radius:var(--radius-xl) var(--radius-xl) 0 0}
.foot-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:36px;align-items:flex-start}
footer .brand{color:var(--inverse-on-surface)}
footer .brand svg{width:92px}
.foot-note{margin-top:16px;font-size:.92rem;max-width:44ch;opacity:.82}
.foot-links{display:flex;flex-direction:column;gap:10px;font-size:.95rem}
.foot-links a{color:var(--inverse-on-surface);font-weight:700}
.foot-links a span{color:var(--inverse-primary)}
.legal{margin-top:44px;font-size:.82rem;opacity:.6}
