/* Case-local editorial layout; no changes to the homepage or other systems. */
.generator-case{--generator-gap:clamp(32px,5vw,64px);}
.generator-role{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;border-top:1px solid #ccc;border-bottom:1px solid #ddd;padding:24px 0;margin-bottom:30px;}
.generator-role h2,.generator-role h3{margin:7px 0 8px;}
.generator-role p{margin:0;color:#555;}
.generator-figure{margin:0;min-width:0;}
.generator-figure>a{display:block;position:relative;}
.generator-image{display:block;overflow:hidden;background:#f3f3f1;transition:transform .28s ease;}
.generator-image img{display:block;width:100%;height:auto;}
.generator-figure figcaption{padding-top:14px;}
.generator-figure figcaption h3{margin:0 0 7px;}
.generator-figure figcaption p{margin:0;color:#555;max-width:76ch;}
.generator-section{margin-top:var(--generator-gap);}
.generator-section-heading{max-width:800px;margin-bottom:24px;}
.generator-section-heading h2{margin:8px 0 14px;}
.generator-section-heading p{margin:0 0 10px;color:#555;}
.generator-contributions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:24px 0 0;}
.generator-contributions>div{border-top:1px solid #ccc;padding-top:17px;}
.generator-contributions dd{margin:0;color:#555;}
.generator-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:24px;}
.generator-flow li{border-top:1px solid #bbb;padding:17px 0 0;min-width:0;position:relative;}
.generator-flow li>span{font-size:11px;color:#777;}
.generator-flow h3{margin:12px 0 8px;}
.generator-flow p{margin:0;color:#555;}
.generator-flow li:not(:last-child)::after{content:'→';position:absolute;right:0;top:16px;color:#888;}
.generator-rules .generator-figure{max-width:1000px;}
.generator-connections{display:grid;grid-template-columns:.7fr 1.3fr;align-items:center;gap:32px;}
.generator-outputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:880px;align-items:start;}
.generator-transparent .generator-image{background:#f0efed;}
.generator-boundaries{margin-top:var(--generator-gap);border-top:1px solid #ccc;border-bottom:1px solid #ccc;padding:18px 0;}
.generator-boundaries summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;}
.generator-boundaries summary::-webkit-details-marker{display:none;}
.generator-boundaries summary span{transition:transform .2s;}
.generator-boundaries[open] summary span{transform:rotate(45deg);}
.generator-boundaries>div{max-width:80ch;padding-top:10px;}
.generator-boundaries p{color:#555;}
.generator-figure a:focus-visible .generator-image{transform:translateY(-3px);}
.generator-boundaries summary:focus-visible{outline:2px solid #111;outline-offset:5px;}
@media(hover:hover){.generator-figure a:hover .generator-image{transform:translateY(-3px);}}
@media(max-width:900px){.generator-flow{grid-template-columns:repeat(2,minmax(0,1fr));}.generator-connections{grid-template-columns:1fr;gap:0;}}
@media(max-width:650px){.generator-role,.generator-contributions{grid-template-columns:1fr;gap:20px;}.generator-role{padding:20px 0;}.generator-flow{gap:24px 16px;}.generator-outputs{gap:24px;grid-template-columns:1fr;}.generator-outputs .generator-image{max-width:340px;}.generator-figure figcaption{padding-top:12px;}}
@media(prefers-reduced-motion:reduce){.generator-image,.generator-boundaries summary span{transition:none;}.generator-figure a:hover .generator-image,.generator-figure a:focus-visible .generator-image{transform:none;}}
