/* Home-only document flow. Service pages retain site.css. */
body.product-site[data-home-screen] { --gutter:clamp(24px,5vw,80px); }
.product-site .ps-home { position:relative; isolation:isolate; }
.product-site [data-home-panel] { box-sizing:border-box; scroll-margin-top:0; }
.product-site .ps-hero-background { position:absolute; inset:0 0 auto; height:calc(100svh - 76px); z-index:-1; overflow:hidden; pointer-events:none; color:#666; opacity:.34; mask-image:radial-gradient(ellipse 38% 33% at 50% 46%,rgb(0 0 0 / .16) 0%,rgb(0 0 0 / .28) 42%,#000 100%); }
.product-site .ps-pattern-scene,.product-site .ps-pattern-fallback { position:absolute; inset:0; width:100%; height:100%; }
.product-site .ps-pattern-scene { transform-origin:50% 50%; }
.product-site .ps-pattern-fallback { object-fit:cover; }

/* The established hero keeps its original geometry. */
.product-site .ps-hero { display:grid; grid-template-rows:1fr auto; min-height:max(580px,calc(100svh - 76px)); padding:64px var(--gutter) 28px; text-align:center; }
.product-site .ps-hero-content { align-self:center; padding-bottom:24px; }
.product-site .ps-hero h1 { font-size:clamp(64px,7.5vw,108px); line-height:1.2; margin:20px 0 23px; }
.product-site .ps-hero-description { font-size:16px; line-height:1.8; color:#666; }
.product-site .ps-hero .ps-actions { justify-content:center; margin-top:52px; gap:16px; }
.product-site .ps-hero .ps-button { min-width:172px; min-height:52px; padding-inline:28px; font-size:15px; font-weight:500; border-radius:6px; }
.product-site .ps-feature-cue { display:flex; align-items:center; justify-content:center; justify-self:center; width:48px; min-height:48px; color:#777; }
.product-site .ps-feature-cue svg { display:block; width:28px; height:46px; }
.product-site .ps-scroll-arrow { animation:ps-scroll-cue 1800ms ease-in-out infinite; }
@keyframes ps-scroll-cue { 0%,20% { transform:translateY(0); opacity:.35; } 55% { transform:translateY(4px); opacity:1; } 85%,100% { transform:translateY(7px); opacity:0; } }
.product-site .ps-feature-cue:hover { color:#171717; }

/* Editorial sections share a wide, uninterrupted reading rhythm. */
.product-site .ps-editorial-panel { padding:104px var(--gutter) 144px; }
.product-site .ps-editorial-inner { display:flex; flex-direction:column; gap:56px; width:min(1600px,100%); margin-inline:auto; }
.product-site .ps-editorial-heading h2 { max-width:15em; font-size:clamp(36px,3.65vw,62px); font-weight:400; line-height:1.18; letter-spacing:-.045em; }
.product-site .ps-editorial-story { display:grid; grid-template-columns:minmax(0,1.85fr) minmax(0,1fr); align-items:center; gap:clamp(48px,5vw,88px); }
.product-site .ps-editorial-visual { position:relative; min-width:0; margin:0; }
.product-site .ps-editorial-copy { width:100%; max-width:520px; justify-self:end; }
.product-site .ps-editorial-prose > p { font-size:clamp(17px,1.25vw,23px); line-height:1.8; letter-spacing:0; word-break:normal; overflow-wrap:normal; text-wrap:pretty; }
.product-site .ps-editorial-prose > p + p { margin-top:22px; }
.product-site .ps-editorial-copy ul { margin:28px 0; padding:0; list-style:none; font-size:14px; line-height:2; color:#666; }
.product-site .ps-editorial-copy .ps-button { min-height:46px; padding-inline:22px; background:transparent; border-color:#d9d9d9; }
.product-site .ps-editorial-copy .ps-button:hover { color:#fff; background:#171717; border-color:#171717; }

/* Four-column framed cards retain the original product icon set. */
.product-site .ps-capabilities-panel { padding:88px var(--gutter) 120px; }
.product-site .ps-capabilities-inner { display:flex; flex-direction:column; gap:40px; width:min(1600px,100%); margin-inline:auto; }
.product-site .ps-category-heading { display:flex; align-items:end; justify-content:space-between; gap:72px; width:100%; }
.product-site .ps-home-overline { margin:0 0 12px; color:#777; font-size:13px; line-height:1.5; }
.product-site .ps-category-heading h2 { margin:0; font-size:clamp(28px,2.6vw,42px); font-weight:400; line-height:1.3; letter-spacing:-.035em; }
.product-site .ps-category-heading > p { max-width:460px; margin:0; color:#666; font-size:14px; line-height:1.9; }
.product-site .ps-capability-grid { display:flex; flex-wrap:wrap; gap:28px; width:100%; margin-inline:auto; }
.product-site .ps-capability-card { --card-surface:#f4f4f4; display:grid; flex:0 0 calc((100% - 84px) / 4); grid-template-rows:72px minmax(0,1fr); gap:14px; box-sizing:border-box; min-width:0; aspect-ratio:1; padding:20px; background:var(--card-surface); color:#171717; text-align:left; text-decoration:none; transition:background-color 240ms ease,color 240ms ease; }
.product-site .ps-capability-caption { font-size:14px; line-height:1.8; }
.product-site .ps-capability-caption h3 { display:inline; margin:0; font-size:inherit; font-weight:600; line-height:inherit; }
.product-site .ps-capability-caption h3::after { content:'：'; }
.product-site .ps-capability-caption p { display:inline; margin:0; font-size:inherit; line-height:inherit; }
.product-site .ps-capability-card[data-capability='development'] .ps-capability-caption h3::after { content:''; }
.product-site .ps-card-frame { position:relative; display:grid; place-items:center; min-width:0; min-height:0; }
.product-site .ps-card-construction { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.product-site .ps-card-construction > path { stroke:currentColor; opacity:.11; stroke-width:.65; vector-effect:non-scaling-stroke; }
.product-site .ps-card-construction > g { fill:currentColor; }
.product-site .ps-capability-icon { position:relative; display:grid; place-items:center; width:116px; height:116px; background:var(--card-surface); transition:background-color 240ms ease; }
.product-site .ps-capability-icon > svg { width:88px; height:88px; stroke-width:.95; }

/* The current large-screen review uses compact controls and actual outputs. */
@media (min-width:1600px) {
  .product-site :is(.ps-editorial-heading,.ps-category-heading) h2 { font-size:48px; font-weight:400; line-height:1.25; letter-spacing:-.04em; }
  .product-site .ps-editorial-story { align-items:stretch; }
  .product-site .ps-editorial-copy { display:flex; flex-direction:column; align-items:flex-start; align-self:stretch; }
  .product-site .ps-editorial-prose { flex:none; width:100%; }
  .product-site .ps-editorial-prose .ps-copy-word { white-space:nowrap; }
  .product-site .ps-editorial-copy > .ps-button { flex:none; align-self:flex-start; margin-top:auto; }
  .product-site .ps-capabilities-panel { padding-block:104px 120px; }
  .product-site .ps-capabilities-inner { gap:78px; }
  .product-site .ps-category-heading { display:block; text-align:center; }
  .product-site .ps-category-heading h2 { max-width:none; }
  .product-site .ps-capability-story { display:grid; grid-template-columns:minmax(0,1.85fr) minmax(0,1fr); align-items:stretch; gap:88px; }
  .product-site .ps-capability-story .ps-editorial-copy { max-width:520px; }
  .product-site .ps-capability-story .ps-button { margin-top:auto; }
  .product-site .ps-capability-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; width:100%; max-width:900px; }
  .product-site .ps-capability-card { --card-surface:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; flex:none; gap:22px; min-width:0; aspect-ratio:auto; padding:24px; border:1px solid #e5e5e5; border-radius:8px; background:var(--card-surface); box-shadow:0 2px 6px rgb(0 0 0 / .012); text-align:center; }
  .product-site .ps-capability-card--compact { min-height:218px; }
  .product-site .ps-capabilities-panel--operations .ps-capability-grid { max-width:780px; }
  .product-site .ps-capability-caption { max-width:18em; font-size:13px; line-height:1.7; }
  .product-site .ps-capability-caption h3 { display:block; font-size:15px; font-weight:500; line-height:1.5; }
  .product-site .ps-capability-caption h3::after { content:none; }
  .product-site .ps-capability-caption p { display:block; margin-top:9px; color:#777; font-size:13px; line-height:1.7; }
  .product-site .ps-card-frame { flex:none; width:52px; height:52px; }
  .product-site .ps-capability-card .ps-card-frame::after { content:none; }
  .product-site .ps-capability-icon { width:52px; height:52px; background:transparent; }
  .product-site .ps-capability-icon > svg { width:44px; height:44px; stroke-width:1; }
  .product-site .ps-capability-card--output { justify-content:start; gap:16px; padding:18px 18px 21px; }
  .product-site .ps-capability-output { position:relative; display:grid; place-items:center; width:100%; height:176px; overflow:hidden; background:#fff; }
  .product-site .ps-capability-output img { display:block; width:100%; height:100%; object-fit:contain; transition:transform 450ms cubic-bezier(.22,1,.36,1); }
  .product-site .ps-capability-card--output:is(:hover,:focus-visible) .ps-capability-output img { transform:scale(1.035); }
  .product-site .ps-capability-output .ps-capability-input { position:absolute; right:0; bottom:0; width:54px; height:54px; padding:4px; border:1px solid #e5e5e5; border-radius:4px; background:#fff; box-shadow:0 2px 6px rgb(0 0 0 / .03); }
  .product-site .ps-capability-card--pending { justify-content:center; min-height:237px; gap:20px; }
  .product-site .ps-capabilities-panel--advanced-effects :is(.ps-category-heading,.ps-capability-story) { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.85fr); gap:88px; }
  .product-site .ps-capabilities-panel--advanced-effects .ps-category-heading h2 { grid-column:2; }
  .product-site .ps-capabilities-panel--advanced-effects .ps-capability-grid { grid-column:2; grid-row:1; justify-self:end; max-width:980px; }
  .product-site .ps-capabilities-panel--advanced-effects .ps-editorial-copy { grid-column:1; grid-row:1; justify-self:start; }
  .product-site .ps-capabilities-panel--advanced-effects .ps-capability-output { height:182px; }
  .product-site .ps-capabilities-panel--image-processing .ps-capability-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .product-site .ps-capabilities-panel--image-processing .ps-capability-grid > * { grid-column:span 2; }
  .product-site .ps-capabilities-panel--image-processing .ps-capability-grid > :nth-child(4) { grid-column:2 / span 2; }
  .product-site .ps-capabilities-panel--image-processing .ps-capability-grid > :nth-child(5) { grid-column:4 / span 2; }
}

@media (max-width:1100px) {
  .product-site .ps-editorial-story { grid-template-columns:minmax(0,1.75fr) minmax(220px,1fr); gap:40px; }
  .product-site .ps-editorial-prose > p { font-size:17px; }
  .product-site .ps-editorial-copy ul { margin-top:22px; font-size:12px; }
  .product-site .ps-capability-grid { --card-size:clamp(210px,calc((100svh - 300px) / 2),260px); gap:18px; max-width:calc(3 * var(--card-size) + 36px); }
  .product-site .ps-capability-card { flex-basis:calc((100% - 36px) / 3); padding:12px; grid-template-rows:54px minmax(0,1fr); }
  .product-site .ps-category-heading { align-items:start; gap:28px; }
  .product-site .ps-category-heading > p { max-width:300px; font-size:12px; }
}
@media (min-width:768px) and (max-height:820px) {
  .product-site .ps-editorial-panel { padding-block:24px 42px; }
  .product-site .ps-editorial-heading h2 { font-size:40px; }
  .product-site [data-home-panel] .ps-interface-illustration { height:360px; }
  .product-site [data-home-panel='technology'] .ps-interface-illustration { height:300px; }
  .product-site .ps-editorial-inner { gap:24px; }
}
@media (max-width:767px) {
  .product-site .ps-hero { min-height:max(510px,calc(100svh - 76px)); padding-top:42px; padding-bottom:25px; }
  .product-site .ps-hero-content { padding-bottom:8px; }
  .product-site .ps-hero h1 { font-size:clamp(50px,13.8vw,76px); margin-block:20px; }
  .product-site .ps-hero-description { max-width:290px; margin-inline:auto; font-size:14px; line-height:1.7; }
  .product-site .ps-hero .ps-actions { flex-wrap:nowrap; max-width:356px; gap:12px; margin:44px auto 0; }
  .product-site .ps-hero .ps-button { flex:1; min-width:0; min-height:50px; padding-inline:20px; gap:20px; font-size:14px; }
  .product-site .ps-editorial-panel { padding:32px 24px 64px; }
  .product-site .ps-editorial-inner { justify-content:start; gap:26px; }
  .product-site .ps-editorial-heading h2 { font-size:34px; max-width:10em; line-height:1.25; }
  .product-site .ps-editorial-story { display:flex; flex-direction:column; align-items:stretch; gap:24px; }
  .product-site .ps-editorial-copy { max-width:none; }
  .product-site .ps-editorial-prose > p { font-size:16px; line-height:1.8; }
  .product-site .ps-editorial-copy ul { margin-block:20px 12px; }
  .product-site .ps-capabilities-panel { padding:30px 24px 64px; }
  .product-site .ps-capabilities-inner { justify-content:start; gap:24px; }
  .product-site .ps-category-heading { display:block; }
  .product-site .ps-category-heading h2 { font-size:30px; max-width:11em; }
  .product-site .ps-category-heading > p { max-width:none; margin-top:16px; font-size:13px; }
  .product-site .ps-capability-grid { gap:16px; max-width:460px; }
  .product-site .ps-capability-card { flex-basis:calc((100% - 16px) / 2); padding:10px; gap:8px; aspect-ratio:.78; grid-template-rows:68px minmax(0,1fr); }
  .product-site .ps-capability-caption { font-size:11px; line-height:1.6; }
}
@media (max-width:479px) {
  .product-site .ps-capability-grid { max-width:350px; }
  .product-site .ps-capability-card { flex-basis:100%; aspect-ratio:1; grid-template-rows:42px minmax(0,1fr); padding:14px; }
  .product-site .ps-capability-caption { font-size:12px; line-height:1.7; }
}
@media (prefers-reduced-motion:reduce) {
  .product-site .ps-hero-background,.product-site .ps-capability-card { transition:none; }
  .product-site .ps-capability-output img { transition:none; }
  .product-site .ps-capability-card--output:is(:hover,:focus-visible) .ps-capability-output img { transform:none; }
  .product-site .ps-scroll-arrow { animation:none; opacity:1; transform:none; }
}
