/* Shared visual layer, loaded after page styles. */
:root { --motion-ease: cubic-bezier(.22, 1, .36, 1); }
:focus-visible { outline: 3px solid var(--accent, #d89b22); outline-offset: 5px; }
.reading-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 120; background: linear-gradient(90deg, var(--brand-300), var(--accent-200)); transform: scaleX(0); transform-origin: left; pointer-events: none; }
.public-nav { background: rgba(var(--site-card-rgb), .92); }
.nav-cta, .page-btn, .home-btn { transition: transform .3s var(--motion-ease), box-shadow .3s ease, background .3s ease; }
.nav-cta:hover, .page-btn:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(var(--brand-900-rgb), .15); }
.home-hero {
    padding-top: 100px;
    background: radial-gradient(ellipse at 85% 15%, rgba(var(--brand-800-rgb), .36), transparent 48%), radial-gradient(ellipse at 8% 90%, rgba(var(--accent-rgb), .11), transparent 40%), linear-gradient(125deg, var(--brand-950), var(--brand-900));
    color: #fff;
}
.home-hero::before { opacity: .4; background-image: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px); background-size: 64px 64px; }
.home-hero::after { content: ''; position: absolute; width: 340px; height: 340px; right: 15%; top: 8%; border: 1px solid rgba(var(--brand-100-rgb), .1); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255, 255, 255, .012), 0 0 0 140px rgba(255, 255, 255, .008); pointer-events: none; }
.hero-eyebrow { padding: 9px 14px; color: var(--brand-100); border: 1px solid rgba(var(--brand-100-rgb), .18); border-radius: 100px; background: rgba(255, 255, 255, .03); font-size: 10px; }
.hero-title { color: #fff; line-height: 1.09; }
.hero-title span { color: var(--accent-200); }
.hero-title span::after { background: rgba(var(--accent-200-rgb), .14); height: 7px; bottom: -5px; }
.hero-description { color: var(--brand-100); font-size: 16px; }
.hero-note { color: var(--brand-200); }
.hero-note-icon { border-color: var(--brand-800); background: var(--brand-900); color: var(--brand-100); }
.home-hero .home-btn-primary { color: var(--on-brand); background: var(--brand); box-shadow: 0 12px 32px rgba(var(--brand-950-rgb), .35); }
.home-hero .home-btn-primary:hover { box-shadow: 0 16px 36px rgba(var(--brand-950-rgb), .45); }
.home-hero .home-btn-secondary { color: var(--brand-50); background: rgba(255, 255, 255, .03); border-color: rgba(255, 255, 255, .19); }
.hero-visual { background: linear-gradient(145deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .012)); border-color: rgba(255, 255, 255, .15); box-shadow: 0 32px 70px rgba(var(--brand-950-rgb), .15), inset 0 1px 0 rgba(255, 255, 255, .08); border-radius: 32px; }
.visual-ring-one { border-style: dashed; border-color: rgba(var(--brand-100-rgb), .25); }
.visual-ring-two { border-color: rgba(var(--accent-200-rgb), .31); }
.visual-ring-one::after { content: ''; position: absolute; width: 10px; height: 10px; background: var(--accent-200); border-radius: 50%; top: 38px; left: 38px; box-shadow: 0 0 24px rgba(var(--accent-200-rgb), .6); }
.quick-panel { padding: 26px; border-radius: 26px; box-shadow: 0 20px 60px rgba(var(--brand-950-rgb), .1); border-color: var(--site-line); }
.quick-card { background: linear-gradient(135deg, var(--site-bg), var(--site-card)); padding: 16px 11px; }
.quick-icon { transition: transform .35s var(--motion-ease), background .3s, color .3s; }
.quick-card:hover .quick-icon { transform: rotate(-8deg) scale(1.08); background: var(--brand); color: var(--on-brand); }
.section-eyebrow, .section-kicker { letter-spacing: .16em; }
.surface-card, .news-card, .about-card, .announcement-card { border-color: var(--site-line-soft); box-shadow: 0 8px 32px rgba(var(--brand-950-rgb), .03); }
.news-card, .surface-card { transition: border-color .3s, box-shadow .3s, transform .35s var(--motion-ease); }
.news-card:hover, .surface-card:hover { border-color: var(--site-line); box-shadow: 0 20px 44px rgba(var(--brand-950-rgb), .06); }
.news-card { border-radius: 24px; }
.news-body { padding: 26px; }
.news-read { padding-top: 17px; border-top: 1px solid var(--site-line-soft); width: 100%; justify-content: space-between; }
.page-hero { background: radial-gradient(ellipse at 85% 20%, rgba(var(--brand-800-rgb), .33), transparent 50%), linear-gradient(120deg, var(--brand-950), var(--brand-900)); }
.page-hero-title { text-wrap: balance; }
.page-cta-card { box-shadow: 0 20px 50px rgba(var(--brand-900-rgb), .12); }
.form-control { transition: border-color .2s, box-shadow .2s; }
.form-control:focus { box-shadow: 0 0 0 4px rgba(var(--brand-rgb), .07); }
.alert-error { margin-bottom: 24px; padding: 18px 22px; color: #9f2a2a; background: #fff1f0; border: 1px solid #f2cccc; border-radius: 14px; font-size: 14px; }
.back-to-top { position: fixed; bottom: 24px; right: 24px; z-index: 70; width: 46px; height: 46px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 15px; background: var(--brand); color: var(--on-brand); box-shadow: 0 8px 26px rgba(var(--brand-950-rgb), .2); cursor: pointer; transition: transform .25s; }
.back-to-top:hover { transform: translateY(-4px); }
.back-to-top[hidden] { display: none; }
.nav-dropdown.nav-enhanced:not(.is-open) .nav-dropdown-panel { opacity: 0; visibility: hidden; pointer-events: none; }
.nav-dropdown.nav-enhanced:not(.is-open) .nav-trigger i { transform: none; }
.nav-dropdown.is-open .nav-dropdown-panel { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
.nav-dropdown.is-open .nav-trigger i { transform: rotate(180deg); }
@keyframes portal-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes portal-orbit { to { transform: rotate(360deg); } }
@keyframes portal-arrive { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: no-preference) {
    .hero-grid > :first-child { animation: portal-arrive .85s var(--motion-ease) both; }
    .hero-visual { animation: portal-arrive 1s .12s var(--motion-ease) both; }
    .float-card-one { animation: portal-float 6s ease-in-out infinite; }
    .float-card-two { animation: portal-float 7s 1s ease-in-out infinite; }
    .visual-ring-one { animation: portal-orbit 55s linear infinite; }
    .reveal-pending { opacity: 0; transform: translateY(24px); }
    .reveal-pending:focus-within { opacity: 1; transform: none; }
    .reveal-visible { animation: portal-arrive .75s var(--reveal-delay, 0ms) var(--motion-ease) both; }
}
@media (max-width: 720px) {
    .home-hero { padding-top: 54px; }
    .hero-title { font-size: clamp(38px, 10vw, 56px); }
    .hero-eyebrow { font-size: 9px; letter-spacing: .1em; }
    .quick-panel { padding: 20px 16px; }
    .back-to-top { right: 16px; bottom: 16px; width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
    .reveal-pending { opacity: 1; transform: none; }
}
