body.app-body{overflow:hidden}
body.app-body>main.features-page{display:grid;flex:1 1 auto;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;width:100%;min-width:0;min-height:0;margin:0;padding:var(--pad-page) var(--page-gutter);gap:var(--gap);overflow:hidden}
.role-card{min-width:0;min-height:0;margin:0;padding:1rem;display:flex;flex-direction:column;border:1px solid var(--maroon-edge);border-radius:var(--radius-lg);background:rgba(var(--theme-lit-rgb),.68);box-shadow:var(--shadow-panel);overflow:hidden}
.role-card.featured{border-color:var(--gold-deep);box-shadow:0 0 25px rgba(var(--theme-accent-rgb),.18),var(--shadow-panel)}
.role-card.artisan{background:linear-gradient(135deg,rgba(var(--theme-lit-rgb),.74),rgba(var(--theme-dark-rgb),.82))}
.role-card>header{flex:0 0 auto;padding:0 0 .9rem;border-bottom:1px solid var(--maroon-edge)}
.role-rank{color:var(--gold);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.role-card h2{margin:.2rem 0;color:var(--gold-bright);font-family:var(--font-display);font-size:clamp(1.4rem,2vw,2rem)}
.role-card header p{margin:0;color:var(--silver);font-size:.78rem;line-height:1.5}
.feature-groups{flex:1 1 auto;min-height:0;margin-top:.75rem;padding-right:.25rem;display:grid;grid-template-columns:1fr;grid-auto-rows:max-content;gap:.65rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.feature-groups article{min-width:0;padding:.8rem;border:1px solid var(--maroon-edge);border-radius:var(--radius-sm);background:rgba(0,0,0,.15)}
.feature-groups h3{margin:0 0 .55rem;color:var(--gold-bright);font-family:var(--font-display);font-size:.92rem}
.feature-groups ul{margin:0;padding-left:1.05rem}
.feature-groups li{color:var(--silver);font-size:.72rem;line-height:1.5;overflow-wrap:anywhere}
.feature-groups li+li{margin-top:.4rem}
@media(max-width:900px){body.app-body{height:auto;min-height:100dvh;overflow:auto}body.app-body>main.features-page{grid-template-columns:1fr;overflow:visible}.role-card{min-height:34rem}.feature-groups{overflow:visible}}
