/* Lex Bellator — luminous architecture. Content is visible without JavaScript. */
[data-motion-banner]{--banner-px:0;--banner-py:0;--banner-scroll:0px;--banner-play-state:paused;--banner-accent:#edc87d;--banner-glow:#9265df;position:relative;isolation:isolate;overflow:hidden;background:#1c1030;color:#fffaf1;border-bottom:1px solid #725381}
[data-motion-banner]::before{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(105deg,#1b102ff5 4%,#25133deb 44%,#3b1b5366 100%);pointer-events:none}
[data-motion-banner]::after{content:"";position:absolute;inset:auto 0 0;height:2px;background:linear-gradient(90deg,transparent 4%,#a579d7 26%,#edc87d 56%,#b677a3 82%,transparent);opacity:.85;pointer-events:none}
[data-motion-banner]>.container,[data-motion-banner]>.prism-hero-copy,[data-motion-banner]>.banner-tools,[data-motion-banner]>.prism-discover{position:relative;z-index:2}
.banner-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:paint;background:radial-gradient(ellipse at 84% 22%,#9256b258,transparent 55%),linear-gradient(135deg,#301747,#1e102e 62%,#542b65)}
.banner-atmosphere::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 58% 110%,#efc66e17,transparent 50%)}
.banner-light{position:absolute;width:44%;height:190%;right:10%;top:-45%;background:linear-gradient(90deg,transparent,#c295f923 45%,#efd18c35 49%,#d7b3f333 50%,transparent 56%);transform:rotate(28deg);animation:banner-light-pass 24s ease-in-out infinite alternate;animation-play-state:var(--banner-play-state)}
.banner-light:nth-child(2){right:-20%;opacity:.75;animation-duration:31s;animation-delay:-13s}
.banner-lattice{position:absolute;inset:0;background-image:linear-gradient(#cba9ef0c 1px,transparent 1px),linear-gradient(90deg,#cba9ef0c 1px,transparent 1px);background-size:74px 74px;transform:perspective(600px) rotateY(-15deg) scale(1.2);transform-origin:right center;opacity:.8}
.banner-drawing{position:absolute;width:min(67%,740px);height:auto;aspect-ratio:1;right:-7%;top:50%;transform:translateY(-50%) translate(calc(var(--banner-px)*7px),calc(var(--banner-py)*7px));color:#dabbea;opacity:.43;transition:transform .9s ease;overflow:visible}
.banner-drawing .diagram-base{fill:none;stroke:currentColor;stroke-width:1;opacity:.5}
.banner-drawing .diagram-topic{fill:#a975ca0b;stroke:#e1be7c;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.banner-drawing .diagram-trace{fill:none;stroke:#fbe1a2;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:22 180;animation:banner-trace 20s linear infinite;animation-play-state:var(--banner-play-state);opacity:.8}
.banner-drawing .diagram-node{fill:#efc66e;animation:banner-node 7s ease-in-out infinite alternate;animation-play-state:var(--banner-play-state);transform-box:fill-box;transform-origin:center}
.banner-drawing .diagram-node:nth-child(2n){animation-delay:-3s}
.banner-drawing .diagram-facet{fill:#ae7adb15;stroke:#d9b9f045;stroke-width:1;animation:banner-facet 18s ease-in-out infinite alternate;animation-play-state:var(--banner-play-state);transform-box:fill-box;transform-origin:center}
[data-motion-banner] h1{color:#fffaf1;text-wrap:balance}
[data-motion-banner] h1 span{color:#efcf8c}
[data-motion-banner] .eyebrow{color:#f0ce8b;letter-spacing:.15em}
[data-motion-banner] .eyebrow i{background:#efd083;box-shadow:0 0 18px #edc87d66}
[data-motion-banner] .lead,[data-motion-banner] .prism-hero-lead{color:#e1d4e9;max-width:40ch}
[data-motion-banner] .breadcrumb{color:#d2bfdf;gap:12px;margin-bottom:34px}
[data-motion-banner] .breadcrumb a{color:#f5e6ff;text-underline-offset:5px}
[data-motion-banner] .btn-primary{background:#eed094;color:#261336;border-color:#f7dfb2;box-shadow:0 8px 35px #0000001f}
[data-motion-banner] .btn-primary:hover{background:#fff1ce;color:#22122e;box-shadow:0 10px 32px #ecc57024}
[data-motion-banner] .btn-light{background:#ffffff06;border-color:#ad8bbb;color:#fff8ef}
[data-motion-banner] .btn-light:hover{background:#ffffff15;border-color:#ecd0f7;color:#fff}
[data-motion-banner] .prism-guide-link{color:#f9e9ff;border-color:#bb96cc}
[data-motion-banner] a:focus-visible,[data-motion-banner] button:focus-visible{outline:3px solid #f5d394;outline-offset:5px}
[data-motion-banner].split-hero{grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:42px 5%;padding-top:58px;padding-bottom:0;min-height:650px;align-items:center}
[data-motion-banner].split-hero>.container{padding-block:0 16px}
[data-motion-banner].split-hero h1{max-width:14ch}
[data-motion-banner].split-hero .actions{gap:14px;margin-top:30px}
[data-motion-banner].prism-hero{grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);gap:36px 5%;padding-top:55px;padding-bottom:0;align-items:center}
[data-motion-banner] .prism-hero-copy{padding-top:15px}
[data-motion-banner] .prism-hero-caption{color:#d8c8e5;margin-top:30px;padding-top:24px;border-top:1px solid #d4b2e32b}
[data-motion-banner] .prism-square{border-color:#e6c270;background:#d0ab6533}
[data-banner-art]{z-index:2;position:relative!important;min-width:0;transform:perspective(1200px) rotateY(calc(var(--banner-px)*-1.5deg)) rotateX(calc(var(--banner-py)*1deg)) translateY(calc(var(--banner-scroll)*-.2));transition:transform 1s cubic-bezier(.22,1,.36,1);border:1px solid #bd9dcc8c;border-radius:14px 62px 14px 14px;box-shadow:0 25px 70px #10051d66,0 0 0 8px #ffffff03,0 0 70px #a06fc71a;background:#33223f;overflow:hidden}
[data-motion-banner] .prism-cover{height:530px;min-height:0;max-height:none;align-self:center;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:0}
.banner-image-window{position:relative;min-width:0;min-height:0;overflow:hidden;isolation:isolate;background:#372743}
[data-motion-banner] .banner-image-window>img{display:block;width:100%;height:100%;object-fit:cover;max-height:none;position:static;transform:scale(1.025);animation:banner-camera 22s ease-in-out infinite alternate;animation-play-state:var(--banner-play-state);transition:none}
.banner-image-window::after{content:"";position:absolute;z-index:1;inset:-50%;background:linear-gradient(112deg,transparent 35%,#fff6d710 43%,#fff4d629 47%,transparent 55%);pointer-events:none;transform:translateX(-45%);animation:banner-glass 25s ease-in-out infinite;animation-play-state:var(--banner-play-state)}
[data-motion-banner] .prism-cover figcaption{background:#2c193d;color:#f4e6ff;position:relative;min-height:58px;line-height:1.45;border-top:1px solid #c8a5db4a;letter-spacing:.08em;padding:15px 20px;font-size:.8125rem}
[data-motion-banner] .prism-cover figcaption span{color:#edc87d}
[data-motion-banner] .prism-hero-art{aspect-ratio:1/1.03;align-self:center}
[data-motion-banner] .prism-hero-art>.banner-image-window{height:100%;width:100%;position:absolute;inset:0}
[data-motion-banner] .prism-hero-art figcaption{z-index:3;color:#fff4dc;background:#281239e8;inset:18px 18px auto;padding:12px 15px;border:1px solid #d6b5e15c;border-radius:4px;backdrop-filter:blur(10px);font-size:.75rem}
[data-motion-banner] .prism-hero-art figcaption svg{color:#efcf8c}
[data-motion-banner] .prism-crest{z-index:3;background:#fcf3e9ed;color:#321746;border-color:#e8c98c;border-radius:5px;right:18px;bottom:18px}
[data-motion-banner] .prism-art-line{z-index:2;background:#57365b;bottom:28px}
.banner-tools{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px 30px;padding:22px 0;border-top:1px solid #dab6e238;min-width:0;width:100%}
.banner-wayfinding{display:flex;gap:12px;align-items:center;min-width:0;font-size:.8125rem;line-height:1.55;letter-spacing:.04em;color:#ebddef}
.banner-wayfinding svg{width:34px;height:34px;padding:8px;border:1px solid #b58dc168;border-radius:50%;flex:none;color:#efcf8c;transition:transform .3s ease,border-color .3s ease}
.banner-wayfinding:hover svg{transform:translateY(3px);border-color:#efd18d}
.banner-motion-control{display:none;align-items:center;gap:9px;border:1px solid #b591c36e;background:#ffffff05;color:#ecdeef;border-radius:30px;padding:9px 15px;min-height:44px;font:inherit;font-size:.75rem;letter-spacing:.01em;line-height:1.4;cursor:pointer;flex:none}
.banner-ready .banner-motion-control{display:inline-flex}
.banner-motion-control svg{width:15px;height:15px;flex:none}
.banner-motion-control:hover:not(:disabled){background:#ffffff12;border-color:#dfc3ee}
.banner-motion-control:disabled{cursor:default;opacity:.85}
.banner-motion-control[aria-pressed=true] .banner-pause-icon{display:none}
.banner-motion-control:not([aria-pressed=true]) .banner-play-icon{display:none}
.banner-section-name{font-family:Outfit,sans-serif;font-size:.875rem;letter-spacing:.12em;color:#d7b9e5;text-transform:uppercase}
[data-motion-banner]>.prism-discover{display:none}
[data-motion-banner].plain{padding-top:52px;padding-bottom:0;min-height:420px;display:grid;grid-template-columns:minmax(0,1fr);gap:38px}
[data-motion-banner].plain>.container{max-width:940px;padding-right:12%;align-self:center}
[data-motion-banner].plain h1{max-width:20ch;font-size:clamp(2.8rem,4.7vw,4.75rem)}
[data-motion-banner].plain .lead{max-width:46ch}
[data-motion-banner].plain .banner-drawing{right:-2%;width:47%;opacity:.44}
[data-motion-banner].plain .prism-title-art{display:none}
[data-motion-banner].plain>.banner-tools{margin-top:0}
.contact-copy[data-motion-banner]{padding:38px 30px 0;border:1px solid #826294;border-radius:12px 46px 12px 12px;position:relative;top:auto;max-width:none;opacity:1;transform:none}
.contact-copy[data-motion-banner]>*:not(.banner-atmosphere){position:relative;z-index:2}
.contact-copy[data-motion-banner] h1{font-size:clamp(2.5rem,3.6vw,3.75rem)!important}
.contact-copy[data-motion-banner] .muted,.contact-copy[data-motion-banner] .small{color:#e1d4e9}
.contact-copy[data-motion-banner] .contact-details a,.contact-copy[data-motion-banner] .text-link{color:#f4d69b}
.contact-copy[data-motion-banner] .contact-details .email{font-size:1rem;overflow-wrap:anywhere}
.contact-copy[data-motion-banner] .contact-details>a:first-child{font-size:clamp(1.5rem,2.5vw,2.25rem)}
.contact-copy[data-motion-banner] .note{background:#f1d9aa12;border-color:#e6c17670;color:#f2e5d5}
.contact-copy[data-motion-banner] .contact-save{background:#ffffff08;border-color:#cba5df54;color:#f2dfab}
.contact-copy[data-motion-banner] .contact-save small{color:#e0cbea}
.contact-copy[data-motion-banner] .banner-tools{margin-top:28px;flex-wrap:wrap;gap:13px}
.contact-copy[data-motion-banner] .banner-drawing{width:120%;right:-36%;top:33%;opacity:.2}
/* Entry motions only enhance a fully visible static layout. No content depends on animation. */
[data-motion-banner].banner-entered .banner-copy>.eyebrow{animation:banner-rise .75s both;animation-play-state:var(--banner-play-state,paused)}
[data-motion-banner].banner-entered .banner-copy>h1{animation:banner-rise .95s .08s both;animation-play-state:var(--banner-play-state,paused)}
[data-motion-banner].banner-entered .banner-copy>.lead,[data-motion-banner].banner-entered .banner-copy>.prism-hero-lead{animation:banner-rise 1s .16s both;animation-play-state:var(--banner-play-state,paused)}
[data-motion-banner].banner-entered .banner-copy>.actions{animation:banner-rise 1s .23s both;animation-play-state:var(--banner-play-state,paused)}
[data-motion-banner].banner-entered [data-banner-art]{animation:banner-art-arrive 1.25s .12s both;animation-play-state:var(--banner-play-state,paused)}
[data-motion-banner].banner-entered .banner-tools{animation:banner-rise 1s .3s both;animation-play-state:var(--banner-play-state,paused)}
[data-motion-banner]:not(.banner-running) .banner-copy>*,[data-motion-banner]:not(.banner-running) [data-banner-art],[data-motion-banner]:not(.banner-running) .banner-tools{animation-play-state:paused}
[data-motion-banner][data-banner-theme=solar-disputes]{--banner-glow:#b07cd8}
[data-motion-banner][data-banner-theme=about] .banner-drawing{transform:translateY(-50%) rotate(-8deg)}
@keyframes banner-rise{from{opacity:.4;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes banner-art-arrive{from{opacity:.3;filter:saturate(.5);translate:0 26px}to{opacity:1;filter:saturate(1);translate:0 0}}
@keyframes banner-camera{from{transform:scale(1.025) translate(0,0)}to{transform:scale(1.08) translate(-.4%,.35%)}}
@keyframes banner-glass{0%,25%{transform:translateX(-50%);opacity:0}45%{opacity:1}65%,100%{transform:translateX(50%);opacity:0}}
@keyframes banner-light-pass{from{transform:translateX(-12%) rotate(24deg);opacity:.35}to{transform:translateX(15%) rotate(30deg);opacity:.85}}
@keyframes banner-trace{to{stroke-dashoffset:-808}}
@keyframes banner-node{from{opacity:.35;transform:scale(.8)}to{opacity:.95;transform:scale(1.2)}}
@keyframes banner-facet{from{transform:translateY(-4px)}to{transform:translateY(6px)}}
@media(min-width:1700px){[data-motion-banner].prism-hero,[data-motion-banner].page-hero{padding-inline:max(5.5%,calc((100% - 1440px)/2))}[data-motion-banner] .prism-cover{height:600px}}
@media(max-width:1150px){[data-motion-banner].split-hero,[data-motion-banner].prism-hero{gap:28px 4%;padding-top:42px}[data-motion-banner] .prism-cover{height:510px}[data-motion-banner].split-hero h1{font-size:clamp(2.7rem,5vw,3.8rem)}[data-motion-banner].split-hero .actions{align-items:flex-start;flex-direction:column}.contact-copy[data-motion-banner]{padding:30px 24px 0}.banner-section-name{display:none}}
@media(max-width:900px){[data-motion-banner].split-hero,[data-motion-banner].prism-hero{grid-template-columns:minmax(0,1fr);padding-top:38px;gap:28px;min-height:0}[data-motion-banner] .prism-hero-copy{padding-top:0}[data-motion-banner].prism-hero h1{font-size:clamp(3.6rem,9.5vw,6rem)}[data-motion-banner] .prism-hero-lead{max-width:43ch}[data-motion-banner].prism-hero .actions,[data-motion-banner].split-hero .actions{flex-direction:row;align-items:center}[data-motion-banner].split-hero h1{max-width:18ch;font-size:clamp(2.8rem,6.5vw,4.5rem)}[data-motion-banner] .prism-hero-art{width:100%;max-width:none;aspect-ratio:1.55}[data-motion-banner] .prism-cover{width:100%;height:410px}[data-motion-banner] .prism-hero-caption{display:none}[data-motion-banner].plain>.container{padding-right:0;max-width:750px}[data-motion-banner].plain .banner-drawing{opacity:.23;width:65%;right:-14%}.contact-copy[data-motion-banner]{max-width:none}.banner-drawing{width:90%;right:-25%}}
@media(max-width:650px){[data-motion-banner].split-hero,[data-motion-banner].prism-hero{display:grid;gap:26px;padding:30px 6% 0}[data-motion-banner] .breadcrumb{font-size:.875rem;margin-bottom:25px}[data-motion-banner] .eyebrow{letter-spacing:.1em}[data-motion-banner].prism-hero h1{font-size:clamp(3.35rem,13.9vw,5.3rem);line-height:1}[data-motion-banner].split-hero h1,[data-motion-banner].plain h1{font-size:clamp(2.55rem,10vw,3.3rem);line-height:1.08}[data-motion-banner] .lead,[data-motion-banner] .prism-hero-lead{font-size:1.1875rem;line-height:1.65}[data-motion-banner].prism-hero .actions,[data-motion-banner].split-hero .actions{gap:14px;flex-direction:row}[data-motion-banner] .prism-hero-art{aspect-ratio:1.2;border-radius:10px 40px 10px 10px}[data-motion-banner] .prism-cover{height:335px;aspect-ratio:auto;border-radius:10px 40px 10px 10px}[data-motion-banner] .prism-cover figcaption{font-size:.75rem;min-height:54px;padding:12px 15px;letter-spacing:.04em}[data-motion-banner] .prism-hero-art figcaption{inset:12px 12px auto;font-size:.625rem;padding:10px;letter-spacing:.035em;gap:6px}[data-motion-banner] .prism-hero-art figcaption>span:first-child{display:none}[data-motion-banner] .prism-crest{bottom:12px;right:12px}.banner-tools{padding:18px 0;flex-wrap:wrap;gap:16px}.banner-wayfinding{font-size:.8125rem;letter-spacing:.015em;flex:1 1 180px}.banner-motion-control{font-size:.75rem;padding:9px 12px;max-width:100%}.banner-wayfinding svg{width:30px;height:30px;padding:7px}.banner-light:nth-child(2){display:none}.banner-drawing{opacity:.22}.banner-lattice{background-size:58px 58px;opacity:.55}[data-motion-banner].plain{padding:32px 6% 0;gap:30px;min-height:0}[data-motion-banner].plain .lead{font-size:1.125rem}[data-motion-banner].plain .banner-drawing{width:100%;right:-45%;opacity:.19}.contact-copy[data-motion-banner]{padding:28px 22px 0;border-radius:10px 38px 10px 10px}.contact-copy[data-motion-banner] h1{font-size:clamp(2.45rem,9vw,3rem)!important}.contact-copy[data-motion-banner] .contact-details>a:first-child{font-size:1.65rem}.contact-copy[data-motion-banner] .contact-details .email{font-size:.9375rem}.banner-motion-control:disabled{flex:0 1 auto;text-align:left}}
@media(max-width:380px){[data-motion-banner] .actions{align-items:stretch!important;flex-direction:column!important}[data-motion-banner] .btn{width:100%;font-size:.9375rem!important;padding-inline:12px}[data-motion-banner].prism-hero h1{font-size:clamp(2.6rem,13.6vw,3.3rem)}[data-motion-banner] .prism-cover{height:295px}.banner-tools{align-items:flex-start}.banner-motion-control{font-size:.75rem}.contact-copy[data-motion-banner] .contact-details .email{font-size:.875rem}}
/* A stopped banner remains complete and readable, including before its first frame. */
.motion-paused [data-motion-banner] *, .motion-paused [data-motion-banner] *::before,.motion-paused [data-motion-banner] *::after{animation:none!important;transition:none!important}
.motion-paused [data-banner-art],.motion-paused .banner-image-window>img{transform:none!important}.motion-paused .banner-drawing{transform:translateY(-50%)!important}
@media(prefers-reduced-motion:reduce){[data-motion-banner] *,[data-motion-banner] *::before,[data-motion-banner] *::after{animation:none!important;transition:none!important}[data-banner-art],.banner-image-window>img{transform:none!important}.banner-drawing{transform:translateY(-50%)!important}.banner-copy>*{opacity:1!important;translate:none!important;transform:none!important}}
@media print{[data-motion-banner]{background:white!important;color:black!important;border:0!important;padding:20px 0!important;overflow:visible!important}[data-motion-banner]::before,[data-motion-banner]::after,.banner-atmosphere,.banner-tools{display:none!important}[data-motion-banner] h1,[data-motion-banner] .eyebrow,[data-motion-banner] .lead,[data-motion-banner] .prism-hero-lead,[data-motion-banner] .muted{color:black!important}[data-motion-banner] *{animation:none!important;transform:none!important;translate:none!important;opacity:1!important}[data-motion-banner] .prism-cover{display:none!important}}

