/* Brand palette, two complete themes, and the restored resource sections. */
.site-header{background:var(--header-bg);color:var(--header-ink);border-color:var(--header-line)}
.brand .logo-for-light{display:var(--logo-light-display)}.brand .logo-for-dark{display:var(--logo-dark-display)}
.language{color:var(--header-ink)}.desktop-nav a[aria-current]{color:var(--link)}.contact-link{border-color:var(--line)}.contact-link:hover{color:var(--link);border-color:var(--link)}
.theme-toggle{width:34px;height:34px;padding:0;border:1px solid var(--line);background:transparent;color:var(--header-ink);display:grid;place-items:center;border-radius:50%;font-size:21px;line-height:1;flex-shrink:0}.theme-toggle:hover{border-color:var(--link);color:var(--link)}.theme-sun{display:var(--logo-dark-display)}.theme-moon{display:var(--logo-light-display)}
.button{background:var(--primary);color:var(--paper)}.button:hover{background:var(--primary-hover)}.button-dark{background:var(--primary);color:var(--paper)}.button-light{background:#faf8ff;color:#24173d}.button-light:hover{background:#fff}.hero{background:var(--paper);color:var(--hero-text)}.hero-image{filter:var(--hero-filter);object-position:62% center}.hero:before{background:var(--hero-overlay)}.hero:after{background:var(--hero-floor)}.hero h1>span:not(.hero-period),.hero-period,.hero-disciplines{color:var(--hero-accent)}.hero-kicker{color:var(--hero-muted)}.hero-description p+p{color:var(--hero-muted)}.hero-actions .text-link{color:var(--hero-text);border-color:var(--line)}.hero-baseline{color:var(--hero-muted);border-color:var(--line)}.hero .signal{background:var(--hero-accent)}
.method-band,.area-hero,.site-footer{color:var(--on-dark)}.method-band .text-link{color:var(--accent)}.area-hero .stack-line,.area-hero .technical-mark{color:var(--dark-muted)}.closing{background:var(--closing-bg);color:var(--closing-ink)}.image-arrow{background:var(--paper);color:var(--ink)}.image-arrow:hover{color:#201a36}.footer-columns h2{color:var(--dark-muted)}.footer-columns a{color:var(--on-dark)}.footer-address strong{color:var(--on-dark)}.footer-wordmark{color:var(--on-dark)}.footer-columns a:hover{color:var(--accent)}
.video-section,.tools-section,.credentials-section,.github-section{padding-block:70px}.video-section{border-top:1px solid var(--line)}.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.video-thumbnail{display:block;position:relative;background:var(--surface);aspect-ratio:16/10;overflow:hidden}.video-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.video-thumbnail:hover img{transform:scale(1.035)}.video-thumbnail>span{position:absolute;left:17px;bottom:17px;display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:var(--primary);color:var(--paper);font-size:29px}.video-item>.eyebrow{margin-block:20px 12px;color:var(--muted)}.video-item>h3{font-size:23px;line-height:1.3;letter-spacing:-.025em}.video-item h3 a:hover{text-decoration:underline}.video-consent{border:1px solid var(--line);padding:23px;background:var(--surface);margin-top:24px;line-height:1.8}.video-consent>p{font-size:12px;color:var(--muted)}.video-consent .button{font-size:11px;min-height:44px;padding:12px 15px;white-space:normal;margin-top:20px;max-width:100%}.video-consent>a{font-size:11px;margin-top:18px;display:block;text-decoration:underline}.video-player{position:relative;aspect-ratio:16/9;background:#070913}.video-player iframe{border:0;width:100%;height:100%}.video-close{margin-top:15px;background:var(--primary);color:var(--paper);border:0;padding:10px 15px;font-size:12px}.video-consent.is-loaded>p,.video-consent.is-loaded>[data-video-load]{display:none}
.faq-section{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;padding-block:80px;border-top:1px solid var(--line)}.faq-section h2{margin-top:22px;font-size:42px}.faq-list details{border-top:1px solid var(--line)}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:22px 0;font-size:16px;line-height:1.5;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary>span{font-size:24px;color:var(--link);transition:transform .2s}.faq-list details[open] summary>span{transform:rotate(45deg)}.faq-list p{padding-bottom:25px;font-size:14px;line-height:1.8;color:var(--muted)}
.credential-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.credential-grid article{border-top:1px solid var(--line);padding-top:24px}.credential-grid img{aspect-ratio:672/352;object-fit:contain;background:#fff}.credential-grid .eyebrow{font-size:8px;margin-top:23px;color:var(--muted)}.credential-grid h3{font-size:19px;letter-spacing:-.02em;line-height:1.4;margin-top:12px}.credential-verify{display:block;font-size:11px;color:var(--link);margin-top:18px}.credential-note{max-width:850px;color:var(--muted);font-size:13px;line-height:1.8;margin-top:35px}.repository-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.repository-list article{border-top:1px solid var(--line);padding-top:22px}.repository-list h3{font-size:23px}.repository-list p{font-size:13px;color:var(--muted);margin-block:16px}.repository-list .stack-line{color:var(--link)}
.footer-mepa-note{padding:22px 0;border-top:1px solid var(--dark-line);display:flex;align-items:center;gap:30px;color:var(--dark-muted);font-size:12px;line-height:1.6}.footer-mepa-note strong{font-family:var(--mono);font-size:20px;color:var(--on-dark);font-weight:normal}.footer-mepa-note a{margin-left:auto;white-space:nowrap;color:var(--accent)}.mepa-section{padding-block:65px;border-top:1px solid var(--line)}.mepa-section h2{max-width:700px;margin-top:20px}.mepa-section>p:not(.eyebrow){max-width:650px;color:var(--muted);margin-top:25px}
.media-gallery{margin-top:65px;padding-top:35px;border-top:1px solid var(--line)}.media-gallery h2{font-size:31px;margin-bottom:30px}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.gallery-grid figure{margin:0}.gallery-grid img{width:100%;height:auto;background:var(--surface)}.gallery-grid figcaption{font-size:11px;line-height:1.7;color:var(--muted);margin-top:12px}.gallery-grid .video-consent{grid-column:1/-1}.database-body img{max-width:100%;height:auto}.database-body>div,.database-body section{max-width:100%;min-width:0}.article-aside time{display:block;font:11px var(--mono);margin-top:14px;color:var(--muted)}.article-aside .reading-time{margin-top:25px;font-size:11px;color:var(--muted)}.article-toc{margin-top:30px;border-top:1px solid var(--line);padding-top:20px}.article-toc summary{font-size:12px;cursor:pointer}.article-toc ol{padding-left:18px;font-size:11px;line-height:1.7;max-height:45vh;overflow-y:auto}.article-toc li{padding-block:6px}.article-toc a:hover{color:var(--link)}.catalogue-notice{padding-block:25px;color:var(--muted)}.pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:50px;flex-wrap:wrap}.pagination a,.pagination span{display:grid;place-items:center;min-width:39px;min-height:39px;border:1px solid var(--line);font:12px var(--mono);padding:8px}.pagination span[aria-current]{background:var(--primary);color:var(--paper);border-color:var(--primary)}.archive-filters{flex-wrap:wrap}.archive-filters label{flex:1;min-width:150px}.archive-filters .search-label{min-width:200px}
@media(max-width:1100px){.header-inner{gap:18px}.desktop-nav{gap:16px}.header-actions{gap:15px}.credential-grid{gap:20px}.video-grid{gap:24px}}
@media(max-width:970px){.mobile-menu nav{background:var(--header-bg);color:var(--header-ink);border-color:var(--line)}.mobile-menu nav a{border-color:var(--line)}.mobile-menu nav a>small{color:var(--muted)}.mobile-menu nav a>span{color:var(--link)}.faq-section{gap:45px}.faq-section h2{font-size:35px}.video-item h3{font-size:21px}.credential-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-toc{display:none}}
@media(max-width:650px){.header-actions{gap:12px}.contact-link{width:31px;height:31px;padding:0;justify-content:center;min-height:31px}.contact-link .contact-link-label{display:none}.contact-link>span:not(.contact-link-label){display:block;font-size:18px}.theme-toggle{width:31px;height:31px;font-size:19px}.hero:before{background:var(--hero-overlay)}.video-section,.tools-section,.credentials-section,.github-section{padding-block:48px}.video-grid{grid-template-columns:1fr;gap:32px}.video-thumbnail{aspect-ratio:16/9}.video-item h3{font-size:23px}.faq-section{grid-template-columns:1fr;gap:35px;padding-block:50px}.faq-section h2{font-size:33px}.faq-list summary{font-size:15px;padding-block:20px}.faq-list p{font-size:13px}.credential-grid{gap:32px 20px}.credential-grid h3{font-size:16px}.credential-grid .eyebrow{font-size:7px;line-height:1.7;margin-top:18px}.credential-verify{font-size:10px}.repository-list{grid-template-columns:1fr}.footer-mepa-note{flex-wrap:wrap;gap:15px;font-size:11px}.footer-mepa-note a{margin-left:0}.footer-mepa-note strong{font-size:18px}.gallery-grid{grid-template-columns:1fr}.media-gallery{margin-top:40px}.media-gallery h2{font-size:27px}.article-aside .reading-time,.article-aside time{margin:0}.archive-filters label{min-width:125px}.archive-filters .search-label{flex-basis:100%}}
@media(max-width:365px){.header-actions{gap:8px}.header-inner{gap:10px}.brand,.brand img{width:88px}.mobile-menu summary{gap:6px}}
@media(prefers-reduced-motion:reduce){.video-thumbnail img,.faq-list summary>span{transition:none}}
@media(max-width:650px){.area-main .section-heading{flex-wrap:wrap;gap:15px}.area-main .section-heading h2{max-width:100%}.area-main .section-heading>a{white-space:normal}.contact-link .contact-link-label{font-size:12px}}
.area-main,.topic-sidebar,.project-item,.news-row>div{min-width:0}.topic-sidebar{max-width:100%}.project-item h3{overflow-wrap:anywhere}
@media(max-width:970px){.area-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){.project-grid{grid-template-columns:minmax(0,1fr)}}
.page-service .page-intro h1{font-size:clamp(40px,4.6vw,67px);line-height:1.1}.service-copy>.eyebrow{margin-top:35px}.service-copy details{border-top:1px solid var(--line);padding-block:15px}.service-copy summary{cursor:pointer;line-height:1.5}.service-copy details p{margin-top:15px}.page-service .article-layout{min-width:0}.service-copy{min-width:0}
.contact-link .contact-link-label{font-size:12px}.resources-menu{position:relative}.resources-menu summary{list-style:none;font-size:12px;display:flex;align-items:center;gap:6px;padding-block:9px}.resources-menu summary::-webkit-details-marker{display:none}.resources-menu>div{position:absolute;right:0;top:38px;background:var(--header-bg);border:1px solid var(--line);min-width:220px;padding:12px 20px;box-shadow:0 15px 30px #0002}.resources-menu>div>a{display:block;padding-block:10px}.resources-menu>div>a:after{display:none}.resources-menu>div>a:hover{color:var(--link)}
.area-editorial{margin-bottom:55px}.area-editorial h2{font-size:36px}.area-editorial h3{font-size:27px}.area-original-services{padding-top:10px}.area-original-services a{font-size:14px}
.title-accent,h1 .title-accent,h2 .title-accent,h3 .title-accent{color:var(--link)}
.site-footer .title-accent,.closing .title-accent{color:#c4aeff}
.topic-sidebar:has(.topic-navigation){display:block;overflow:visible;padding-bottom:0;border:0}
.topic-navigation{width:100%;min-width:0}
.topic-navigation summary{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;list-style:none;padding:15px 0;font:12px var(--mono);border-bottom:1px solid var(--line)}
.topic-navigation summary::-webkit-details-marker{display:none}
.topic-navigation[open] summary>span{transform:rotate(180deg)}
.topic-navigation nav a{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);line-height:1.6;overflow-wrap:anywhere}
.topic-navigation nav a[aria-current]{color:var(--link);font-weight:700}
.topic-navigation nav a:hover{color:var(--link)}



.architecture-flow{margin:50px 0 60px;padding:30px 0;border-block:1px solid var(--line)}
.architecture-flow h2{font-size:29px;margin:15px 0 30px}
.architecture-flow ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;gap:20px}
.architecture-flow li{position:relative;border-top:2px solid var(--link);padding-top:17px;line-height:1.5;font-size:13px}
.architecture-flow small{display:block;font:11px var(--mono);color:var(--muted);margin-bottom:12px}
.architecture-flow>p:last-child{font-size:13px;color:var(--muted);line-height:1.8;margin-top:25px}
.cra-note{border-left:3px solid var(--link);padding-left:25px;margin-block:35px}
.topic-detail h2{font-size:clamp(29px,3.3vw,43px)}
.topic-detail li{margin-block:12px}.topic-service-links a{font-size:15px}
.topic-faq{border-block:1px solid var(--line);padding-block:20px;margin-block:32px}.topic-faq summary{cursor:pointer;line-height:1.7;font-weight:600}.topic-faq p{margin-top:18px}
.collaboration-note{border-left:3px solid var(--link);padding:3px 0 3px 24px;margin:10px 0 40px;line-height:1.85}
.collaboration-note h2{font-size:26px;margin:0 0 15px;line-height:1.25}
.collaboration-note p{font-size:15px;line-height:1.85;max-width:76ch;color:var(--muted)}
.company-collaboration{margin-block:35px 60px}.platform-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:30px}
.area-hero .platform-note{color:var(--dark-muted)}
.area-collaboration{font-weight:500}.github-intro{max-width:var(--wrap);margin-bottom:15px}
.repository-related{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}
.repository-related:empty{display:none}
.repository-related a{display:block;font-size:13px;line-height:1.65;padding-block:6px;color:var(--link)}
.github-catalogue{padding-bottom:70px}
.github-toolbar{display:flex;align-items:start;justify-content:space-between;gap:35px;border-bottom:1px solid var(--line);padding-bottom:28px}
.github-toolbar>p{max-width:470px;font-size:13px;line-height:1.8;color:var(--muted)}
.github-catalogue .filter-tabs{margin-top:35px}
.github-search{display:flex;align-items:end;gap:20px;margin:30px 0}
.github-search label{display:flex;flex:1;flex-direction:column;gap:12px;font-size:12px;line-height:1.6}
.github-search input[type=search]{width:100%;min-width:0;font:16px var(--sans);padding:14px 0;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}
.github-search input:focus-visible{outline:2px solid var(--link);outline-offset:4px}
.github-search .button{flex-shrink:0}
.repository-feature{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:45px;align-items:center;padding-block:25px 55px;border-bottom:1px solid var(--line)}
.repository-feature figure{margin:0;min-width:0;aspect-ratio:16/10;background:var(--surface);overflow:hidden}
.repository-feature img{width:100%;height:100%;object-fit:cover;display:block}
.repository-feature figure{animation:repository-enter .45s ease both}.repository-feature>div{animation:repository-enter .5s .08s ease both}
@keyframes repository-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.repository-feature h2{font-size:clamp(33px,3.5vw,51px);margin-block:18px}
.repository-feature>div>p:not(.eyebrow){font-size:16px;line-height:1.9;color:var(--muted)}
.repository-actions{display:flex;flex-wrap:wrap;gap:15px 25px;margin-top:24px;font-size:13px;line-height:1.8}
.repository-actions a{color:var(--link);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.repository-row{display:grid;grid-template-columns:210px minmax(0,1fr) 145px;gap:32px;padding-block:35px;border-bottom:1px solid var(--line);align-items:start}
.repository-art{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--surface)}
.repository-art img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .22s ease}
.repository-art:hover img{transform:scale(1.025)}
.repository-row>div{min-width:0}.repository-row h2{font-size:30px;margin:13px 0;overflow-wrap:anywhere}
.repository-row>div>p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted);max-width:65ch}
.repository-name{font:10px var(--mono);line-height:1.8;overflow-wrap:anywhere;color:var(--muted);padding-top:3px;text-align:right}
.github-collaboration{margin-top:55px;padding-top:30px;border-top:1px solid var(--line);max-width:760px}
.github-collaboration h2{font-size:30px;line-height:1.2;margin-bottom:20px}.github-collaboration p{font-size:15px;line-height:1.9;color:var(--muted);margin-bottom:20px}
.pagination{flex-wrap:wrap;gap:10px}.pagination .pagination-direction{width:auto;min-width:44px;padding-inline:16px}.pagination .pagination-gap{border:0;min-width:18px;width:18px}
@media(max-width:970px){.repository-feature{gap:30px}.repository-row{grid-template-columns:170px minmax(0,1fr);gap:25px}.repository-name{display:none}}
@media(max-width:650px){.github-toolbar{display:block}.github-toolbar>p{margin-top:20px}.github-search{align-items:stretch;flex-direction:column;gap:20px}.github-search .button{align-self:start}.repository-feature{grid-template-columns:minmax(0,1fr);gap:26px;padding-bottom:35px}.repository-feature h2{font-size:34px}.repository-feature>div>p:not(.eyebrow){font-size:14px}.repository-row{grid-template-columns:minmax(0,1fr);gap:22px}.repository-art{aspect-ratio:16/9}.repository-row h2{font-size:28px}.repository-actions{gap:14px 22px}.github-collaboration h2{font-size:27px}.pagination .pagination-direction{font-size:11px;padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.repository-art img{transition:none}.repository-feature figure,.repository-feature>div{animation:none}}
.news-row,.area-main .news-row{grid-template-columns:240px minmax(0,1fr) 42px;gap:32px;align-items:center}
.news-cover{display:block;min-width:0;aspect-ratio:16/10;overflow:hidden;background:var(--surface)}
.news-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .22s ease}
.news-cover:hover img{transform:scale(1.025)}
.news-row .news-body{min-width:0}.news-row .news-area{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:12px;font-size:10px;line-height:1.7}
.news-row h3{font-size:26px;line-height:1.25}.news-row p{font-size:13px;line-height:1.85}
.area-main .news-row{grid-template-columns:165px minmax(0,1fr) 36px;gap:22px}.area-main .news-row h3{font-size:22px}
@media(max-width:970px){.news-row,.area-main .news-row{grid-template-columns:180px minmax(0,1fr) 36px;gap:24px}.news-row h3,.area-main .news-row h3{font-size:23px}}
@media(max-width:650px){.news-row,.area-main .news-row{grid-template-columns:minmax(0,1fr) 32px;gap:22px 14px;align-items:start;padding-block:28px}.news-cover{grid-column:1/-1;aspect-ratio:16/9}.news-row .news-body{grid-column:1;grid-row:2}.news-row>.round-arrow{grid-column:2;grid-row:2;margin-top:30px}.news-row h3,.area-main .news-row h3{font-size:24px}.news-row .news-area{font-size:9px;margin-bottom:12px}.news-row p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.news-cover img{transition:none}}
@media(max-width:970px){.topic-navigation summary{padding:18px 0;font-size:13px}.topic-navigation nav{padding-bottom:15px}}
@media(max-width:650px){.architecture-flow ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 18px}.architecture-flow h2{font-size:27px}.cra-note{padding-left:18px}}
@media(max-width:650px){.area-editorial{margin-bottom:40px}.area-editorial h2{font-size:30px}.area-editorial h3{font-size:24px}}
