/* Shared content, spacing, accessibility, and print corrections within the deployed theme. */
/* Keep the original palette and components; improve spacing and text contrast. */
:root,[data-theme="dark"]{--text-muted:#94a3b8;--content-link:#93c5fd;--panel-shadow:0 6px 20px rgba(2,6,23,.18);--panel-shadow-hover:0 10px 24px rgba(2,6,23,.24)}
[data-theme="light"]{--text-muted:#526176;--content-link:#1d4ed8;--panel-shadow:0 5px 18px rgba(15,23,42,.06);--panel-shadow-hover:0 8px 22px rgba(15,23,42,.1)}
.publication-content a:not(.btn),.publication-meta a:not(.btn),.hero-cta>a:not(.btn){color:var(--content-link);text-underline-offset:.18em}
.page-header,.page-header.ph--projects{padding:112px 0 28px!important}
@media(max-width:768px){.page-header,.page-header.ph--projects{padding-top:104px!important}}
.page-header,.navbar,.footer{font-family:var(--font-primary)}
.page-header .container{max-width:var(--container-max)!important}
.page-header .page-header-content{display:block!important}
.page-header .page-tag{display:inline-flex!important;width:auto!important;color:var(--content-link)!important;-webkit-text-fill-color:var(--content-link)!important;background:var(--accent-gradient-soft)!important;background-clip:padding-box!important;-webkit-background-clip:padding-box!important;animation:none!important}
.page-header-content .hero-cta{justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0 0}
.page-header-content>.card-tags{justify-content:center;gap:8px;margin-top:16px!important}
.page-header-content .article-distribution ul{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 20px;list-style:none;padding:0!important;margin:8px 0 0}
.page-header-content .article-distribution li{margin:0}
body.diagram-suite-page{padding:0!important}
.diagram-suite-page .footer>.container{max-width:var(--container-max)!important}
/* Avoid stacking the legacy divider's spacing on the shared footer spacing. */
.footer-divider{margin:0 auto!important}
body.diagram-suite-page .footer.footer--pro{margin-top:24px}
body.diagram-suite-page .footer.footer--pro .footer-grid{margin-top:0}
body.diagram-suite-page .footer.footer--pro .footer-bottom--pro{margin-top:12px}
body.diagram-suite-page .flow-container{margin-bottom:24px}
body.diagram-suite-page .ecosystem-layout{margin-top:0}
.about-page .cta-panel-title{font-size:clamp(1.5rem,3vw,2.1rem)!important;line-height:1.25}
.home-page .hero{padding-top:112px!important}
.home-page .typewriter-wrap{font-size:clamp(1rem,1.55vw,1.15rem)!important;margin-bottom:0!important}
@media (max-width:768px){.home-page .hero{padding-top:104px!important}.home-page .scroll-indicator{display:none}}
[data-theme="dark"] .home-page .hero-line.line-3{color:#a8b5c9!important}
.home-page #hero-terminal .term-ps1,.home-page #hero-terminal .term-prompt-ps1{color:#b59aff!important}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}
.footer--pro{margin-top:24px;border-top:1px solid color-mix(in srgb,var(--accent-primary) 24%,var(--border-color));background:linear-gradient(180deg,color-mix(in srgb,var(--bg-secondary) 88%,var(--accent-primary) 12%),var(--bg-primary))}.footer--pro .footer-grid{position:relative;z-index:1}.footer--pro .footer-subline{max-width:34ch;line-height:1.65;color:var(--text-secondary)}.footer--pro .footer-links-col{gap:36px}.footer--pro .footer-col-title{letter-spacing:.04em}.footer--pro .footer-link{transition:color .2s ease,transform .2s ease}.footer--pro .footer-link:hover{transform:translateX(3px)}.footer--pro .footer-connect-card{align-self:stretch}.footer--pro .footer-bottom--pro{border-top-color:color-mix(in srgb,var(--border-color) 78%,var(--accent-primary) 22%)}
.home-page .floating-orbs{opacity:.28}.home-page .floating-orbs .orb{animation:none;transform:none}.home-page #particles-canvas{opacity:.16}.home-page .hero-visual{width:440px;max-width:100%;transform:none;margin:0}.home-page #hero-terminal{width:100%;max-width:100%;animation:none!important}.home-page .hero-text-stack{position:relative;z-index:3}.home-page .hero{display:flex!important;gap:48px;overflow:clip}.home-page .hero-content{min-width:0}
[data-theme="light"] .home-page #hero-terminal{box-shadow:0 10px 24px rgba(15,23,42,.14)!important}
.about-page .section-header .section-tag{margin-bottom:6px}.about-page .section-header .section-title{margin-bottom:6px}.about-page .section-header .section-subtitle{line-height:1.48}
#ecosystem .eco-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin-top:0}
#ecosystem .eco-card{padding:20px}
#ecosystem .eco-header{position:relative;gap:12px;margin-bottom:12px;padding-bottom:12px}
#ecosystem .eco-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;font-size:13px;line-height:1}
#ecosystem .eco-title{min-width:0;line-height:1.35}
/* The hover badge should not reserve an empty column beside every card title. */
#ecosystem .eco-live-badge{position:absolute;right:0;bottom:-8px;margin:0;font-size:10px;line-height:1.4;padding:2px 7px}
#ecosystem .eco-list li{margin-bottom:6px}
#ecosystem .eco-list li:last-child{margin-bottom:0}
.about-page .cert-logo-banner{height:156px;min-height:0}
.about-page .cert-official-badge{width:auto;max-width:100%;max-height:128px}
/* Word reveal already preserves the spaces from the heading's text nodes. */
.rv-word:not(:last-child){margin-right:0}
.section-header .section-title{display:block}
.section-header::after{margin:10px auto 0}
.section-header{margin-bottom:12px!important}.section-header .section-tag{margin-bottom:6px!important}.section-header .section-title{margin-bottom:6px!important}.section-header .section-subtitle{margin-top:0!important;line-height:1.48!important}.page-header-content .page-tag{margin-bottom:8px!important}.page-header-content .page-title{margin-bottom:10px!important}.page-header-content .page-subtitle{line-height:1.52!important}
@media(max-width:1100px){.home-page .hero{flex-direction:column;gap:32px;text-align:center}.home-page .hero-content{width:100%}.home-page .typewriter-wrap,.home-page .hero-cta{justify-content:center}.home-page .hero-visual{margin-inline:auto}.home-page .floating-orbs{opacity:.2}}
/* Reserve room for the existing absolute scroll cue instead of overlapping CTAs. */
@media(min-width:769px){.home-page .hero{padding-bottom:108px}.home-page .scroll-indicator{bottom:24px}.home-page .scroll-line{height:44px}}
.eocs-flow-wrap{margin-bottom:20px}
.home-research-note{max-width:68ch;margin:24px auto 0;text-align:center}
.case-study-layout [id],#overview [id],#roadmap [id],#archive [id],#publications [id]{scroll-margin-top:110px}
.case-study-layout .publication-content h3{font-size:1rem;line-height:1.5;margin:20px 0 8px}
.case-study-layout{display:grid!important}
.case-study-layout>.case-study-nav{position:sticky!important;top:96px;padding:20px!important}
.case-study-layout>.principle-card{transform:none!important;will-change:auto}
/* New content uses the established card surfaces and existing emblem assets. */
.experience-card,.evidence-card{display:flex;flex-direction:column;gap:12px}
.experience-card .card-icon,.evidence-card .card-icon{margin-bottom:0}
.experience-card h3,.evidence-card h3{margin-bottom:0}
.experience-card ul{padding-left:20px;color:var(--text-secondary);font-size:15px;line-height:1.7}
.experience-card li+li{margin-top:8px}
.experience-card .project-link,.evidence-card>.btn{margin-top:auto;align-self:flex-start}
.experience-card .principle-number{pointer-events:none}
.skip-link{position:fixed;top:-100px;left:12px;z-index:20000}.skip-link:focus{top:12px;padding:12px 18px;background:var(--bg-primary);color:var(--text-primary);outline:2px solid var(--accent-primary)}
.form-honey{position:absolute;left:-9999px}
.research-entry{display:block}.research-entry dd{margin:0 0 8px}.research-entry dt{font-weight:600}.research-entry a,.publication-content code{overflow-wrap:anywhere}
.case-section{margin-bottom:28px}.publication-content ul,.publication-content ol{padding-left:20px}.publication-content h2{margin:18px 0 12px}.publication-content p{margin-bottom:16px}
.case-study-layout,.publications-grid:has(> .quick-nav){grid-template-columns:minmax(190px,230px) minmax(0,1fr);align-items:start;gap:24px}.case-study-layout>.case-study-nav,.publications-grid:has(> .quick-nav)> .quick-nav{position:sticky;top:96px;margin:0;padding:20px}.case-study-nav strong,.publications-grid:has(> .quick-nav)> .quick-nav strong{display:block;color:var(--text-primary);font-size:13px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:12px}.case-study-nav ol,.publications-grid:has(> .quick-nav)> .quick-nav ol{display:grid;gap:6px;margin:0;padding-left:20px}.case-study-nav a,.publications-grid:has(> .quick-nav)> .quick-nav a{color:var(--text-secondary);font-size:13px;line-height:1.4;text-decoration:none}.case-study-nav a:hover,.case-study-nav a:focus-visible,.publications-grid:has(> .quick-nav)> .quick-nav a:hover,.publications-grid:has(> .quick-nav)> .quick-nav a:focus-visible{color:var(--accent-primary)}.case-study-layout>.publication-content,.publications-grid:has(> .quick-nav)> .publication-content{min-width:0;padding:clamp(24px,3vw,40px)}.case-study-layout>.publication-content>section+section,.publications-grid:has(> .quick-nav)> .publication-content>section+section{border-top:1px solid var(--border-color);padding-top:24px;margin-top:24px}.case-study-layout>.publication-content>section h2,.publications-grid:has(> .quick-nav)> .publication-content>section h2{margin-top:0;color:var(--text-primary)}
.projects-grid .project-card{min-height:220px}.projects-grid .project-content{height:100%;display:flex;flex-direction:column}.projects-grid .project-link{margin-top:auto;align-self:flex-start}
@media(max-width:860px){.case-study-layout,.publications-grid:has(> .quick-nav){grid-template-columns:1fr}.case-study-layout>.case-study-nav,.publications-grid:has(> .quick-nav)>.quick-nav{position:static!important;top:auto}.case-study-layout>.publication-content,.publications-grid:has(> .quick-nav)>.publication-content{padding:24px!important}}
/* Text panels keep content-driven heights and consistent breathing room. */
.principle-card:not(.case-study-nav):not(.publication-content),.publication-card{padding:24px!important}
.education-card{padding:24px!important}
.capabilities-grid,.principles-grid,.projects-grid,.learning-grid,.evidence-grid,.publications-grid:not(.case-study-layout){gap:20px!important;align-items:stretch}
.principles-grid>.principle-card,.projects-grid>.project-card{min-width:0}
.publication-card>.publication-content,.publication-card>.writing-article-ribbon{min-width:0;max-width:100%}
.blog-card-tags{display:flex;flex-wrap:wrap;gap:6px}
.blog-card-tags>span{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.recognition-layout>*{min-width:0}
.projects-grid .project-content{padding-top:44px!important}
#project-collection .projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
#prototypes .projects-grid,#planned-work .projects-grid{grid-template-columns:minmax(0,1fr)!important;max-width:720px;margin-inline:auto}
.ai-hero{padding:28px 24px!important}
.ai-hero h2{font-size:clamp(1.4rem,2.5vw,1.9rem);line-height:1.25;margin-bottom:12px}
.ai-hero p{font-size:1rem;line-height:1.65}
.about-page .image-frame{width:min(300px,100%);height:auto;aspect-ratio:1}
.profile-focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}
.profile-focus-grid>div{min-width:0}
.profile-focus-grid span{max-width:100%;overflow-wrap:anywhere}
/* Keep the existing surfaces and accents with restrained elevation in both themes. */
html[data-theme] :is(.capability-card,.principle-card,.project-card,.publication-card,.ai-card,.eco-card,.cert-card,.learning-card,.footer-card,.contact-form-container,.contact-method,.future-card,.std-topic,.profile-placeholder,.vr-ai .ai-card,.vr-ai .publication-card),#ecosystem .eco-card{box-shadow:var(--panel-shadow)!important}
html[data-theme] :is(.capability-card:hover,.capability-card.featured:hover,.principle-card:hover,.project-card:hover,.publication-card:hover,.ai-card:hover,.eco-card:hover,.cert-card:hover,.learning-card:hover,.footer-card:hover,.contact-method:hover,.future-card:hover,.vr-ai .ai-card:hover,.vr-ai .publication-card:hover),#ecosystem .eco-card:hover{box-shadow:var(--panel-shadow-hover)!important}
.capability-card:hover,.principle-card:not(.publication-content):not(.case-study-nav):hover,.project-card:hover,.publication-card:not(.research-entry):hover,.ai-card:hover,.eco-card:hover,.cert-card:hover,.learning-card:hover,.future-card:hover,.vr-ai .ai-card:hover,.vr-ai .publication-card:hover,#ecosystem .eco-card:hover{transform:translateY(-3px)!important}
.principle-card.publication-content,.case-study-nav,.research-entry,.footer--pro .footer-card{transform:none!important}
.footer--pro .footer-card{padding:16px;align-self:stretch}
[data-theme="light"] .decision-panel,[data-theme="light"] .mermaid-card{box-shadow:0 8px 20px rgba(15,23,42,.14)!important}
/* Existing accent tokens also serve small panel labels and source links. */
.article-body a:not(.btn){color:var(--content-link);text-underline-offset:.18em}
.std-topic-kicker,.eocs-flow-kicker,.kh-art-tag,.cs-node strong,.cs-card h4,.rag-mini-source code,#grounding-cache-key,.recognition-action .project-link span{color:var(--content-link)!important}
html[data-theme] .rag-lab-textarea::placeholder{color:#526176!important;-webkit-text-fill-color:#526176!important;opacity:1}
/* Floating panels fit narrow and short screens, with scrollable content. */
#ai-panel{display:none!important;left:auto;right:24px;bottom:80px;width:min(420px,calc(100vw - 48px))!important;height:min(580px,calc(100dvh - 104px));max-height:calc(100dvh - 104px);grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden!important;box-shadow:var(--panel-shadow-hover)}
#ai-panel.active{display:grid!important}
#ai-panel .ai-body,#ai-panel .ai-head-left,#ai-panel .ai-input{min-width:0;min-height:0}
#ai-panel .ai-foot{grid-template-columns:minmax(0,1fr) auto}
#ai-panel .ai-suggestions{max-height:100px;overflow-y:auto}
.cmd-modal{--cmd-top:clamp(16px,12dvh,96px);padding:var(--cmd-top) 16px 24px;align-items:flex-start}
.cmd-content{min-width:0;max-height:min(600px,calc(100dvh - var(--cmd-top) - 24px));box-shadow:var(--panel-shadow-hover)}
.cmd-header{flex-shrink:0}
.cmd-header input,.cmd-results{min-width:0;min-height:0}
@media(max-width:768px){
 .capabilities-grid,.principles-grid,.projects-grid,.certs-grid,.education-grid,.learning-grid,.evidence-grid,.publications-grid:not(.case-study-layout),.related-systems-grid,.artifact-grid,.quick-nav-grid,.std-grid,.future-grid,.diagrams-grid,.details-grid,.cs-grid,.eco-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
 .publication-card,.recognition-page .recognition-layout{grid-template-columns:minmax(0,1fr)}
 .rag-lab-compare-grid,.wf-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px}
 #project-collection .projects-grid{grid-template-columns:minmax(0,1fr)!important}
 .profile-grid,.contact-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:24px}
 .profile-focus-grid{display:grid!important;gap:10px!important}
 .principle-card:not(.case-study-nav):not(.publication-content),.principle-card.publication-content,.publication-card,.education-card,.contact-form-container{padding:20px!important}
 .case-study-layout>.publication-content{padding:24px!important}
 .projects-grid .project-content{padding:44px 20px 20px!important}
 .ai-hero{padding:24px 20px!important}
 .footer--pro .footer-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:20px}
}
@media(max-width:480px){.profile-focus-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-height:500px){#ai-panel .ai-suggestions{max-height:56px}}
@media(prefers-reduced-motion:reduce){.capability-card:hover,.principle-card:not(.publication-content):not(.case-study-nav):hover,.project-card:hover,.publication-card:hover,.ai-card:hover,.eco-card:hover,.cert-card:hover,.learning-card:hover,.future-card:hover,.vr-ai .ai-card:hover,.vr-ai .publication-card:hover,#ecosystem .eco-card:hover{transform:none!important}}
/* Keep existing reveal text readable when the user's OS disables animation. */
@media(prefers-reduced-motion:reduce){.animate-fade-in,.animate-slide-up{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.page-header .animate-fade-in,.page-header .animate-slide-up{animation:none!important;opacity:1!important;transform:none!important}}
@media print{[data-aos],.animate-fade-in,.animate-slide-up,.rv-inner{opacity:1!important;transform:none!important;animation:none!important}}
@media print{#career-tracks{display:none!important}}
@media print{.navbar,.footer,.ai-fab,.ai-panel,.cmd-modal,.bg-gradient,.floating-orbs,canvas,.skip-link,.hero-cta{display:none!important}html,body{background:white!important;color:black!important}main{padding-top:0!important}.section,.page-header{padding:16px 0!important}.container{max-width:none!important}.publication-content,.principle-card{background:white!important;color:black!important;box-shadow:none!important;transform:none!important}.publication-content p,.page-title,.page-subtitle,.section-title,.publication-meta,a{color:black!important;-webkit-text-fill-color:black!important}h2,h3{break-after:avoid}.principle-card{break-inside:avoid}}
