/* All tokens belong to the product. Host UI variables cannot change the palette. */
:root{--ryu-bg:#061B2C;--ryu-panel:#0A2940;--ryu-elevated:#103B56;--ryu-text:#F4FAFF;--ryu-muted:#C3DCEB;--ryu-link:#70D8FF;--ryu-line:#386682;--ryu-field:#061B2C;--ryu-focus:#70D8FF;--ryu-orange:#ff9b57;--ryu-purple:#d3a5ff;--ryu-cyan:#70D8FF;--ryu-gold:#ffd777;--ryu-action:#ff8b42;--ryu-action-text:#092A40;--ryu-footer:#041523;--ryu-backdrop:#03111de8;color-scheme:dark}
:root[data-theme="light"]{--ryu-bg:#F2F9FD;--ryu-panel:#FFFFFF;--ryu-elevated:#E2F0F8;--ryu-text:#092A40;--ryu-muted:#34586D;--ryu-link:#075F89;--ryu-line:#91B5CA;--ryu-field:#FFFFFF;--ryu-focus:#075F89;--ryu-orange:#A53600;--ryu-purple:#713491;--ryu-cyan:#075F89;--ryu-gold:#795400;--ryu-action:#A53600;--ryu-action-text:#FFFFFF;--ryu-footer:#E2F0F8;--ryu-backdrop:#092a40b8;color-scheme:light}
@media(prefers-color-scheme:light){:root:not([data-theme]){--ryu-bg:#F2F9FD;--ryu-panel:#FFFFFF;--ryu-elevated:#E2F0F8;--ryu-text:#092A40;--ryu-muted:#34586D;--ryu-link:#075F89;--ryu-line:#91B5CA;--ryu-field:#FFFFFF;--ryu-focus:#075F89;--ryu-orange:#A53600;--ryu-purple:#713491;--ryu-cyan:#075F89;--ryu-gold:#795400;--ryu-action:#A53600;--ryu-action-text:#FFFFFF;--ryu-footer:#E2F0F8;--ryu-backdrop:#092a40b8;color-scheme:light}}
.light-section{--ryu-bg:inherit;--ryu-panel:inherit;--ryu-text:inherit;--ryu-muted:inherit;--ryu-line:inherit;--ryu-orange:inherit;--ryu-purple:inherit;--ryu-cyan:inherit;--ryu-gold:inherit;background:var(--ryu-elevated);color:var(--ryu-text)}
html,body{background:var(--ryu-bg);color:var(--ryu-text)}
p,.muted,.fineprint,.light-section .fineprint,.hero-description>p,.section-title>p,.service-list p,.signature,.brand small,.footer-bottom,.footer-bottom p,.film-description,.person small,.art-caption>span,.character strong,.needs small,.brief .fineprint,caption,td{color:var(--ryu-muted)}
h1,h2,h3,.light-section h2,.light-section h3,strong,label,.brief label,summary,.light-section summary,th,.contact-link{color:var(--ryu-text)}
em,.light-section em,.headline-grid h1 em,.service-mark,.process article>span,.chronicles summary b,.chronicles summary>span,.service-list article>span:first-child{color:var(--ryu-orange)}
.eyebrow,.light-section .eyebrow,.hero-topline>.eyebrow,.package-content>.eyebrow,.p-social .eyebrow,.p-360 .eyebrow,.faction-panel .eyebrow,.index-code,.panel-top,.coordinate{color:var(--ryu-muted)}
.plain-link,.text-link,.text-button,.package-brief strong,.recommendation a,.footer-nav a:hover,.section-index a:hover,.service-list small{color:var(--ryu-link)}
.plain-link:hover,.text-link:hover,.contact-link:hover{color:var(--ryu-link);text-decoration:underline}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline-color:var(--ryu-focus)}
.site-header,.site-header nav,.nav-dropdown>div,.site-header .nav-dropdown>div{background:var(--ryu-panel);border-color:var(--ryu-line)}
.site-header nav a,.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--ryu-text)}
.header-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ryu-elevated);color:var(--ryu-text);border:1px solid var(--ryu-line);padding:11px 14px;min-height:46px;border-radius:3px;font:14px/1.3 Arial,sans-serif;white-space:nowrap}
.theme-toggle:hover{border-color:var(--ryu-link)}
.site-header nav{gap:20px}.site-header{gap:20px}
.theme-toggle[aria-pressed="true"]{box-shadow:inset 0 -2px 0 var(--ryu-link)}
.brand-hero{background:radial-gradient(ellipse at 90% 0%,color-mix(in srgb,var(--ryu-purple) 11%,transparent),transparent 48%),var(--ryu-bg)}
.hero-description .plain-link,.stage-caption a{color:var(--ryu-link)}
.ambient{background:radial-gradient(ellipse at 90% 20%,color-mix(in srgb,var(--ryu-purple) 8%,transparent),transparent 50%)}
.motion-toggle,.filter,.secondary,.ghost,.light-section .secondary,#menu-toggle,.dialog-close{color:var(--ryu-text);background:var(--ryu-panel);border-color:var(--ryu-line)}
.motion-toggle:hover,.secondary:hover,.ghost:hover,.light-section .secondary:hover,.filter:hover{background:var(--ryu-elevated);color:var(--ryu-text);border-color:var(--ryu-link)}
.primary,.primary:hover,.site-header .nav-cta,.site-header .nav-cta:hover,.filter[aria-pressed="true"]{background:var(--ryu-action);color:var(--ryu-action-text);border-color:var(--ryu-action)}
.primary span,.filter[aria-pressed="true"] span{color:inherit}
.marquee{background:var(--ryu-action);color:var(--ryu-action-text);border-color:var(--ryu-line)}
.package,.package-brief,.package-brief:hover,.team-profiles article,.specialties article,.brief,.faction-panel,.comparison,.needs button,.contact,.closing{background:var(--ryu-panel);border-color:var(--ryu-line)}
.package-brief>span{color:var(--ryu-muted)}
.package-image .index-code{background:var(--ryu-panel);color:var(--ryu-muted)}
.needs button[aria-pressed="true"],.recommendation{background:var(--ryu-elevated);border-color:var(--ryu-link)}
.recommendation{color:var(--ryu-text)}
.needs strong{color:var(--ryu-text)}.needs span,.needs b{color:var(--ryu-link)}
.contact{background:radial-gradient(ellipse at 0 20%,color-mix(in srgb,var(--ryu-orange) 5%,transparent),transparent 55%),var(--ryu-panel)}
input,select,textarea,.brief input,.brief select,.brief textarea{background:var(--ryu-field);color:var(--ryu-text);border-color:var(--ryu-line)}
input::placeholder,textarea::placeholder{color:var(--ryu-muted);opacity:1}
.brief #copy-status{color:var(--ryu-text)}
.media-block .art-open{background:var(--ryu-elevated);border-color:var(--ryu-line)}
.media-block figcaption>strong,.art-caption h3{color:var(--ryu-text)}
.media-block figcaption>span{color:var(--ryu-purple)}
.media-block .art-plus{background:var(--ryu-panel);color:var(--ryu-text);border-color:var(--ryu-line)}
.footer{background:var(--ryu-footer)}.footer-word{-webkit-text-stroke-color:var(--ryu-line)}
dialog{background:var(--ryu-panel);color:var(--ryu-text);border-color:var(--ryu-line)}dialog::backdrop{background:var(--ryu-backdrop)}
.brand-logo{filter:none;mix-blend-mode:normal;background:#FFFFFF;border-radius:3px}
/* Original dark-on-white logo is kept unchanged; its white tile works in either theme. */
.skip{background:var(--ryu-text);color:var(--ryu-bg)}
@media(max-width:1200px){.site-header nav{gap:14px}.site-header nav a{font-size:14px}.theme-toggle{padding:10px;font-size:13px}.site-header{gap:15px;padding-inline:28px}}
@media(max-width:1100px){.site-header nav{position:absolute;top:100px;left:0;right:0;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:15px 28px 30px;visibility:hidden;opacity:0;transform:translateY(-10px);pointer-events:none;max-height:calc(100dvh - 100px);overflow:auto}.site-header nav.open{visibility:visible;opacity:1;transform:none;pointer-events:auto}.site-header nav a{font-size:17px;padding:15px 0}#menu-toggle{display:block}.header-actions{margin-left:auto}.nav-group{display:block}.nav-group>a{display:inline-block}.nav-dropdown{display:inline-block;position:static;margin-left:15px}.nav-dropdown>summary{min-width:44px;min-height:44px}.nav-dropdown>div{position:static;margin:0 0 15px;box-shadow:none;min-width:0;width:100%;padding:8px 20px;border:0}.nav-dropdown[open]{display:block;margin-left:0}.nav-dropdown[open]>summary{position:absolute;right:30px;transform:translateY(-53px)}.site-header .nav-cta{margin-top:15px;padding:15px 20px}}
@media(max-width:1000px){.site-header nav{top:88px;max-height:calc(100dvh - 88px)}}
@media(max-width:700px){.site-header{height:auto;min-height:82px;flex-wrap:wrap;padding:15px 20px;gap:12px}.site-header nav{top:100%;max-height:calc(100dvh - 82px)}.header-actions{gap:9px}.theme-toggle{font-size:13px;padding:10px;min-height:46px}#menu-toggle{min-width:75px;padding:10px}.brand-logo{width:35px;height:40px}.site-header .brand>span{font-size:20px}.brand small{font-size:8px}}
@media(max-width:450px){.site-header .brand{flex:1 1 100%}.header-actions{width:100%;justify-content:space-between;margin:0}.site-header{gap:12px}.site-header nav{max-height:calc(100dvh - 140px)}.theme-toggle{font-size:14px}.site-header .brand>span{font-size:23px}.brand-logo{width:42px;height:45px}}
/* Theme changes are atomic: no unreadable intermediate foreground/background pair. */
*,*:before,*:after{transition-property:transform,opacity,box-shadow,visibility!important}
.media-block .art-open .art-plus{color:var(--ryu-text);background:var(--ryu-panel);border-color:var(--ryu-line)}
