/* Catalog composition. Shared N1 primitives remain the source of color and type. */
*{box-sizing:border-box}
html{background:var(--aim-s-canvas);color:var(--aim-s-text);font:400 var(--aim-s-size-body)/1.55 var(--aim-s-font);scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
.shell{width:min(1220px,calc(100% - 48px));margin:auto}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--aim-c-focus-ring);outline-offset:4px}
main{padding:40px 0 64px}
.eyebrow,.rail,.product-kind{color:var(--aim-s-text-secondary);font-size:11px;font-weight:500;letter-spacing:.06em}
.catalog-intro{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:64px;align-items:center;padding:16px 0 40px}
h1{font-size:clamp(32px,5.2vw,64px);font-weight:600;line-height:1.08;letter-spacing:-.045em;margin:16px 0 20px}
.lead{max-width:600px;font-size:15px;color:var(--aim-s-text-secondary);margin:0}
.product-shortcuts{border-top:1px solid var(--aim-s-divider)}
.product-shortcuts a{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--aim-s-divider);font-size:12px;min-height:52px}
.product-shortcuts a span:last-child{margin-left:auto;color:var(--aim-s-text-secondary)}
.product-shortcuts img{object-fit:contain;flex:none}
.product-shortcuts a:hover{background:var(--aim-s-data)}
.collection-title{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--aim-s-divider);padding:24px 0 20px}
.collection-title h2,.experiments h2{font-size:18px;font-weight:500;margin:0}
.collection-title>span{color:var(--aim-s-text-secondary);font-size:12px}
.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.app-card{min-width:0;border:1px solid var(--aim-s-divider);border-radius:var(--aim-c-panel-radius);padding:24px;display:flex;flex-direction:column;background:var(--aim-s-surface);scroll-margin-top:24px}
.app-card-head{display:flex;align-items:center;gap:12px;min-width:0}
.app-card-head>img{flex:none;object-fit:contain}
.app-card-head>div{min-width:0}
.app-card h2{font-size:clamp(18px,2vw,23px);font-weight:600;line-height:1.2;margin:4px 0;letter-spacing:-.025em;overflow-wrap:anywhere}
.product-version{font-size:10px;color:var(--aim-s-text-secondary);margin-left:auto;white-space:nowrap}
.app-description{font-size:13px;line-height:1.6;color:var(--aim-s-text-secondary);min-height:42px;margin:16px 0 24px}
.app-card figure{margin:0 0 20px;flex:1}
.product-preview,.product-demo{display:flex;align-items:center;justify-content:center;height:320px;background:var(--aim-s-data);border-radius:var(--aim-c-card-radius);padding:16px;overflow:hidden}
.product-preview img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 3px 8px #20212412)}
.product-demo{flex-direction:column;gap:14px;text-align:center;font-size:12px}
.product-demo strong{font-size:13px;max-width:320px;font-weight:500}
.demo-label,.product-demo>span:last-child{color:var(--aim-s-text-secondary);font-size:11px}
.demo-voxel{height:132px;display:grid;place-items:center}
.demo-voxel img{object-fit:contain}
.product-preview:hover,.product-demo:hover{outline:1px solid var(--aim-s-text-secondary);outline-offset:-1px}
figcaption{font-size:10px;color:var(--aim-s-text-secondary);margin-top:8px}
.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;flex-wrap:wrap}
.open{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--aim-c-button-border);border-radius:var(--aim-c-button-radius);font-size:12px}
.open:hover{background:var(--aim-s-data)}
.release{margin:0!important}.release a{font-size:11px}
.experiments{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:40px;padding:28px 0;border-top:1px solid var(--aim-s-divider)}
.experiments>div{flex:1;min-width:240px}.experiments p{font-size:12px;color:var(--aim-s-text-secondary);margin-bottom:0}.experiments>a{font-size:12px;text-decoration:underline;text-underline-offset:5px}
footer{padding:28px 0;border-top:1px solid var(--aim-s-divider);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:11px;color:var(--aim-s-text-secondary)}
footer strong{display:block;color:var(--aim-s-text);font-size:13px;margin-bottom:4px}
footer a{text-decoration:underline;text-underline-offset:4px}
@media(max-width:850px){.catalog-intro{gap:32px;grid-template-columns:minmax(0,1fr) 250px}.app-card{padding:16px}.app-card-head{flex-wrap:wrap}.product-version{margin-left:68px}.product-preview,.product-demo{height:280px}.app-card h2{font-size:19px}}
@media(max-width:620px){.shell{width:calc(100% - 32px)}main{padding-top:24px}.catalog-intro{grid-template-columns:1fr;gap:24px;padding-top:0}.product-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}.product-shortcuts a{font-size:10px;gap:6px}.product-shortcuts img{width:32px;height:32px}.app-grid{grid-template-columns:1fr;gap:16px}.product-version{margin-left:auto}.app-card-head{flex-wrap:nowrap}.product-preview,.product-demo{height:300px}.app-description{min-height:0}.experiments{gap:16px}h1{font-size:36px}footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.app-card-head{margin-bottom:20px}.app-card figure{flex:none;margin:0}.app-description{margin:16px 0 20px;min-height:42px}.card-bottom{margin-top:auto}.product-live-preview{display:block;width:100%;height:356px;border:1px solid var(--aim-s-divider);border-radius:var(--aim-c-card-radius);background:var(--aim-s-surface)}
/* Window shots and the page theme (rule 53). A product whose published build carries the black theme ships a
   pair from one build and one synthetic fixture, and the page shows the shot of its own profile. A product with
   one shot (Language Relay 2.5.3, white only) keeps it as an exhibit: every shot sits in a hairline frame, so a
   white window on the black page reads as a picture in a frame. */
.product-preview .shot{border:1px solid var(--aim-s-divider);border-radius:var(--aim-s-radius-control)}
.product-preview .shot-black{display:none}
[data-aim-profile="n1-dark"] .product-preview[data-shot-pair] .shot-white{display:none}
[data-aim-profile="n1-dark"] .product-preview[data-shot-pair] .shot-black{display:block}
[data-aim-profile="n1-dark"] .product-preview:not([data-shot-pair]) .shot{border-color:var(--aim-s-text-secondary)}

/* Public release evidence and the existing self-knowledge family. */
.release-history,.release-history-note{margin:20px 0 0;padding-top:14px;border-top:1px solid var(--aim-s-divider);font-size:11px;color:var(--aim-s-text-secondary)}
.release-history summary{cursor:pointer;color:var(--aim-s-text);min-height:28px}
.release-history ol{padding-left:20px;line-height:1.8}.release-history a{text-decoration:underline;text-underline-offset:4px}
.tool-family{margin-top:40px}.tool-family .lead{max-width:760px;font-size:13px}
.family-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}
.family-tools a{display:flex;align-items:center;gap:12px;border:1px solid var(--aim-s-divider);border-radius:var(--aim-c-panel-radius);padding:20px;font-size:13px}
.family-tools a:hover{background:var(--aim-s-data)}.family-tools strong{font-weight:500}.family-tools span:last-child{margin-left:auto}
@media(max-width:620px){.family-tools{grid-template-columns:1fr}.tool-family .collection-title{flex-wrap:wrap;gap:16px}}
