.products-page{background:var(--paper-50)}.products-hero{position:relative;overflow:hidden;background:var(--d-bg);color:var(--on-d);padding:calc(var(--header-height) + var(--space-3xl)) 0 var(--space-3xl);border-bottom:1px solid #e4c27c29}.products-hero:before{content:"";position:absolute;top:-28%;right:-10%;width:60vw;height:60vw;max-width:720px;max-height:720px;background:radial-gradient(circle,#e4c27c33 0,#e4c27c00 62%);pointer-events:none;z-index:0}.products-hero .container{position:relative;z-index:1}.products-hero__eyebrow{font-family:var(--font-mono,ui-monospace,monospace);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-lit);margin:0 0 var(--space-md)}.products-hero__title{font-size:clamp(2.6rem,7vw,5rem);line-height:1.02;letter-spacing:-.02em;margin:0;max-width:16ch}.products-hero__accent{color:var(--brass-lit);background:linear-gradient(100deg,var(--brass-lit),#f3dca6 60%,var(--brass-500));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:#0000}.products-hero__lede{margin:var(--space-lg) 0 0;max-width:58ch;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.65;color:var(--on-d-muted)}.products-hero__stats{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-xl);margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid #e4c27c2e}.products-hero__stats span{font-size:.95rem;color:var(--on-d-muted)}.products-hero__stats strong{color:var(--on-d);font-weight:600}.products-section{padding:var(--space-3xl) 0}.products-section--tight{padding-top:var(--space-lg)}.products-subhead{margin-bottom:var(--space-xl)}.products-subhead h2{margin:var(--space-xs) 0 0;font-size:clamp(1.6rem,3.5vw,2.2rem)}.featured-grid{grid-template-columns:repeat(2,1fr)}.featured-grid,.products-grid{display:grid;gap:var(--space-xl)}.products-grid{grid-template-columns:repeat(3,1fr)}.pcard{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);transition:transform var(--duration-normal) var(--ease-spring),border-color var(--duration-normal) ease,box-shadow var(--duration-normal) ease}.pcard--featured:hover,a.pcard:hover{transform:translateY(-6px);border-color:#c8a15a73;box-shadow:0 28px 56px -26px #2b27204d,0 0 0 1px #c8a15a1f}.pcard__shot{position:relative;background:var(--paper-100)}.browser-chrome,.pcard__shot{border-bottom:1px solid var(--color-border)}.browser-chrome{display:flex;align-items:center;gap:6px;padding:0 .85rem;height:34px;background:linear-gradient(var(--paper-100),var(--paper-50))}.browser-chrome i{width:9px;height:9px;border-radius:var(--radius-full);background:var(--paper-200);flex-shrink:0}.browser-chrome i:first-child{background:#e5a09a}.browser-chrome i:nth-child(2){background:#e6ce8e}.browser-chrome i:nth-child(3){background:#a8cba0}.browser-chrome__url{margin-left:.5rem;font-family:var(--font-mono,ui-monospace,monospace);font-size:.72rem;color:var(--color-text-muted);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcard__shot img{display:block;width:100%;height:auto;aspect-ratio:1280/860;object-fit:cover;object-position:top center;transition:transform .6s var(--ease-out)}.pcard--featured:hover .pcard__shot img,a.pcard:hover .pcard__shot img{transform:scale(1.025)}.pcard__body{flex-direction:column;padding:var(--space-lg);flex:1 1}.pcard__body,.pcard__meta{display:flex;gap:var(--space-sm)}.pcard__meta{align-items:center;justify-content:space-between}.pcard__cat{font-family:var(--font-mono,ui-monospace,monospace);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-700)}.pcard__name{margin:0;font-size:1.3rem;letter-spacing:-.01em}.pcard--featured .pcard__name{font-size:clamp(1.5rem,2.6vw,1.9rem)}.pcard__tag{margin:0;font-weight:600;color:var(--color-text);line-height:1.45}.pcard__blurb{margin:0;font-size:.9rem;line-height:1.65;color:var(--color-text-secondary);flex:1 1}.pstatus{display:inline-flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:.22rem .6rem;border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.pstatus i{width:6px;height:6px;border-radius:50%;background:currentColor}.pstatus--live{background:#22c55e1a;color:#15803d;border:1px solid #22c55e38}.pstatus--beta{background:#2f55c214;color:var(--blue-600);border:1px solid #2f55c233}.pstatus--soon{background:#c8a15a1f;color:var(--brass-700);border:1px solid #c8a15a47}.pcard--featured{flex-direction:column}.pcard__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md)}.pcard__actions,.pcard__link{align-items:center;margin-top:var(--space-sm)}.pcard__link{display:inline-flex;gap:.45rem;font-size:.85rem;font-weight:600;color:var(--brass-700)}a.pcard:hover .pcard__link svg{transform:translateX(3px)}.pcard__link svg{transition:transform var(--duration-fast) var(--ease-out)}.ios-badge{display:inline-flex;align-items:center;gap:.6rem;padding:.5rem .95rem;border-radius:var(--radius-md);background:var(--ink-900);color:#fff;text-decoration:none;line-height:1.05;transition:transform var(--duration-fast) var(--ease-out),background var(--duration-fast) ease;align-self:flex-start}.ios-badge:hover{transform:translateY(-1px);background:#000}.ios-badge svg{color:#fff}.ios-badge__text{display:flex;flex-direction:column;text-align:left}.ios-badge__text small{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.ios-badge__text strong{font-size:.95rem;font-weight:600}.products-cta{background:var(--d-bg);color:var(--on-d);padding:var(--space-4xl) 0;border-top:1px solid #e4c27c29}.products-cta__inner{max-width:60ch}.products-cta h2{font-size:clamp(1.8rem,4.5vw,2.8rem);margin:0 0 var(--space-md)}.products-cta p{color:var(--on-d-muted);font-size:1.05rem;line-height:1.7;margin:0 0 var(--space-xl)}.products-cta__actions{display:flex;flex-wrap:wrap;gap:var(--space-md)}@media (max-width:980px){.products-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.featured-grid,.products-grid{grid-template-columns:1fr}.products-section{padding:var(--space-2xl) 0}.products-hero{padding:calc(var(--header-height) + var(--space-2xl)) 0 var(--space-2xl)}}