:root{color-scheme:dark;--bg:#25282c;--surface:#2d3035;--text:#f7f8fa;--muted:#a6adb8;--accent:#9ee6b4;font-family:Inter,"Segoe UI",Arial,sans-serif;background:#1e2024;color:var(--text);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}a,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}.skip-link{position:fixed;left:20px;top:-100px;z-index:20;padding:12px;background:#18563b}.skip-link:focus{top:12px}.top-surface{position:relative;background:var(--bg);isolation:isolate;min-height:calc(100vh - 100px)}.top-surface:before{content:"";position:absolute;inset:0;background-image:url('assets/lab-pattern.webp');background-size:1050px auto;opacity:.62;pointer-events:none;z-index:-2}.top-surface:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#25282c0d 0%,#25282c45 320px,#25282cee 900px);pointer-events:none;z-index:-1}.masthead{max-width:1240px;margin:auto;min-height:110px;padding:24px 30px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;font-size:1.65rem;font-weight:600;letter-spacing:-.07em}.brand-caption{display:block;font-size:.65rem;color:var(--muted);font-weight:500;letter-spacing:.14em;margin-top:5px}.brand-element{position:relative;width:47px;height:48px;border:1px solid #83ce9c;background:linear-gradient(135deg,#286b49,#17472f);font-size:1.85rem;line-height:1;padding:14px 4px 0;letter-spacing:-.06em;text-align:center}.brand-element small{position:absolute;top:4px;right:5px;font-size:.6rem;letter-spacing:0}.group-nav{display:flex;align-items:center;gap:12px}.group-nav a{font-size:.9rem;padding:11px 16px;border-radius:9px;color:#c7ccd3;white-space:nowrap;font-weight:500;transition:background .18s,color .18s}.group-nav a:hover{background:#ffffff09;color:white}.group-nav a[aria-current=page]{background:#ffffff0c;color:var(--accent)}.hero{text-align:center;padding:58px 24px 49px}.hero-badge{margin:0 auto 29px;display:inline-flex;gap:10px;align-items:center;border:1px solid #ffffff20;border-radius:30px;background:#35393e90;color:#c9cfd6;font-size:.875rem;padding:8px 14px}.tiny-element{font-size:.75rem;border:1px solid #8bbb9950;line-height:1;padding:3px;color:var(--accent)}.badge-divider{height:12px;width:1px;background:#ffffff25;margin:0 2px}h1{margin:0;font-size:clamp(3rem,5.3vw,4.9rem);font-weight:700;line-height:1.12;letter-spacing:-.055em;display:flex;justify-content:center;align-items:center;gap:20px}h1>span:last-child{display:flex;align-items:center}.title-element{display:inline-flex;justify-content:center;align-items:center;position:relative;padding:.21em .11em .04em;border:2px solid #a7d3b6;width:1.34em;height:1.34em;font-weight:600;background:linear-gradient(130deg,#286b48,#134b30);box-shadow:0 7px 30px #10251a20;letter-spacing:-.055em}.title-element small{position:absolute;right:.48em;top:.3em;font-size:.19em;letter-spacing:0;font-weight:400}.temple-element{margin-right:.04em}.hero-copy{font-size:1.1rem;color:#c0c6cf;line-height:1.6;margin:25px 0 32px;font-weight:400}.category-shortcuts{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.category-shortcuts a{display:flex;align-items:center;gap:12px;font-size:.875rem;font-weight:500;padding:11px 16px;color:#c5ccd5;background:#2f3338b3;border:1px solid #ffffff0c;border-radius:100px;transition:transform .18s,border-color .18s,background .18s}.category-shortcuts a:hover{transform:translateY(-2px);border-color:#ffffff30}.category-shortcuts a[aria-current=page]{color:#c4f4d5;background:#2d4639d9;border-color:#82c69b48}.category-shortcuts a span{font-size:.75rem;display:grid;place-items:center;min-width:20px;height:20px;border-radius:100%;background:#ffffff09;color:#a7afb9}.category-shortcuts a[aria-current=page] span{background:#95dfa519;color:var(--accent)}.roles-section{max-width:950px;margin:auto;padding:5px 24px 70px;scroll-margin-top:28px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:8px}.eyebrow{font-size:.75rem;letter-spacing:.12em;color:#929ca9;margin:0 0 7px;text-transform:uppercase}h2{font-size:1.6rem;line-height:1.25;font-weight:650;letter-spacing:-.025em;margin:0}.role-count{font-size:.8rem;color:#b6beca;border:1px solid #ffffff14;padding:7px 11px;border-radius:7px;white-space:nowrap}.roles-hint{font-size:.875rem;color:#a6afb9;margin:10px 0 23px}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.role-card{background:#2d3035f5;border:1px solid #ffffff0d;border-radius:12px;overflow:hidden;box-shadow:0 6px 24px #00000008;transition:border-color .2s,background .2s}.role-card:hover{border-color:#a5ddbc33;background:#31353afa}.role-card>summary{padding:21px 20px;display:flex;align-items:center;gap:15px;list-style:none;cursor:pointer;min-height:90px}.role-card>summary::-webkit-details-marker,.extra-details summary::-webkit-details-marker{display:none}.role-medallion{display:grid;place-items:center;flex:0 0 40px;height:43px;border:1px solid #8ad9a62e;border-radius:5px;background:#2b423522;color:#a7dfb8;font-size:.9rem;font-weight:500;position:relative}.role-medallion small{position:absolute;font-size:.5rem;right:4px;top:3px;color:#8bbb98}.role-heading{min-width:0;flex:1}.role-name{font-size:1rem;font-weight:600;color:#eef1f5;display:block;line-height:1.35;overflow-wrap:anywhere}.role-description{display:block;font-size:.8rem;color:#99a3ae;font-weight:400;margin-top:6px}.expand-icon{color:#aab3bd;font-size:1.35rem;font-weight:300;line-height:1;transition:transform .2s}.role-card[open]>summary{background:#323a35;border-bottom:1px solid #ffffff0c}.role-card[open] .expand-icon,.extra-details details[open]>summary .expand-icon{transform:rotate(45deg);color:var(--accent)}.role-permissions{padding:8px 20px 22px}.permission-category{margin-top:17px}.permission-category h3{font-size:.875rem;font-weight:600;color:#a5deba;margin:0 0 10px;display:flex;justify-content:space-between}.permission-category h3 span{font-weight:400;color:#8b9e92}.permission-category ul{list-style:none;padding:0;margin:0}.permission-category li{position:relative;font-size:1rem;line-height:1.5;color:#c9cfd7;padding:5px 0 5px 20px}.permission-category li:before{content:'✓';position:absolute;left:0;top:5px;color:#8ccb9e;font-size:.8rem}.no-permissions{font-size:.875rem;color:#939da9;margin:0;line-height:1.6}.unknown-message{font-size:1rem;color:#b6bec8;line-height:1.65;margin:13px 0 0}.group-note{font-size:.875rem;line-height:1.65;color:#97a1ae;margin:19px 0 30px;max-width:770px}.extra-details{border-top:1px solid #ffffff10}.extra-details>details{border-bottom:1px solid #ffffff10}.extra-details summary{padding:21px 2px;list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:1rem;color:#cbd1d9;font-weight:500;gap:20px}.extra-details summary small{display:inline-block;margin-left:15px;font-size:.8rem;font-weight:400;color:#85909e}.detail-body{padding:0 0 25px}.legend{display:flex;gap:22px;font-size:.875rem;color:#aab3be;flex-wrap:wrap;padding:0 0 10px}.legend b{color:var(--accent)}.scroll-hint{font-size:.875rem;color:#8b96a4;margin:6px 0 16px}.table-scroll{overflow:auto;border:1px solid #ffffff14;border-radius:10px;scrollbar-color:#536258 #292c30}table{border-collapse:collapse;width:100%;min-width:850px;font-size:.875rem;background:#292c31}th,td{padding:13px 12px;border-right:1px solid #ffffff0d;border-bottom:1px solid #ffffff0d;text-align:center;line-height:1.5}th:last-child,td:last-child{border-right:0}thead th{background:#343c36;font-weight:600;min-width:95px}thead th:first-child{width:35%;min-width:280px;text-align:left}tbody th{text-align:left;font-weight:400;color:#bec6d0}tbody td{color:#909baa}td.check-cell{color:var(--accent);font-size:1.15rem}.section-row th{background:#324336;color:#b4e1c2;font-size:.875rem;font-weight:600}.total-row>*{background:#31353a;font-weight:600}.table-scroll th:first-child{position:sticky;left:0;background:#292c31;z-index:1}.table-scroll thead th:first-child{background:#343c36}.table-scroll .section-row th:first-child{background:#324336}#poster-image{width:100%;height:auto;display:block;border-radius:8px;border:1px solid #ffffff12}.poster-caption{text-align:right;color:#929da9;font-size:.875rem}footer{max-width:1240px;min-height:102px;margin:auto;padding:25px 30px;display:flex;align-items:center;gap:28px;color:#82909e;font-size:.8rem}.footer-brand{color:#bdc6d0;font-size:1rem;font-weight:600;white-space:nowrap}footer p{flex:1;line-height:1.6;margin:0}footer>span{white-space:nowrap}
@media(max-width:900px){.masthead{padding:24px;gap:20px;flex-wrap:wrap;justify-content:center}.brand{margin-right:auto}.group-nav{gap:4px}.group-nav a{padding:10px;font-size:.875rem}.hero{padding-top:40px}.extra-details summary small{display:block;margin:6px 0 0}}
@media(max-width:640px){.masthead{padding:21px 18px 6px;gap:22px}.brand{margin:auto;font-size:1.5rem}.group-nav{width:100%;display:grid;grid-template-columns:repeat(2,1fr);text-align:center;gap:5px}.group-nav a{font-size:.875rem;padding:12px 6px;background:#ffffff03;border:1px solid #ffffff06}.hero{padding:36px 18px 36px}.hero-badge{font-size:.875rem;margin-bottom:24px}h1{font-size:clamp(2.6rem,10vw,3.75rem);gap:12px}.hero-copy{font-size:1rem;max-width:330px;margin:23px auto 25px}.category-shortcuts{display:none}.roles-section{padding:0 16px 42px}h2{font-size:1.4rem}.role-count{font-size:.8rem}.eyebrow{font-size:.75rem}.roles-hint{line-height:1.6}.role-grid{grid-template-columns:1fr;gap:10px}.role-card>summary{padding:18px;min-height:86px}.role-name{font-size:1rem}.top-surface:before{background-size:740px auto}footer{flex-wrap:wrap;gap:15px;padding:24px 18px}footer p{order:3;flex-basis:100%}footer>span{margin-left:auto}.role-permissions{padding-left:18px;padding-right:18px}}
@media(prefers-reduced-motion:no-preference){.role-grid{animation:reveal .25s ease-out}@keyframes reveal{from{opacity:.55;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}html{scroll-behavior:smooth}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
h1{flex-wrap:wrap}
