@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400 700; font-display: optional; src: url(/assets/fonts/source-sans-3-normal-v1.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: 'Source Serif 4'; font-style: italic; font-weight: 400 700; font-display: optional; src: url(/assets/fonts/source-serif-4-italic-v15.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 400 700; font-display: optional; src: url(/assets/fonts/source-serif-4-normal-v15.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } :root { --navy: #0B1F3A; --navy-soft: #132D52; --blue: #3D7DD9; --blue-light: #6BA3F0; --blue-pale: #E8F1FC; --red: #E23B3B; --red-soft: #F5E0E0; --gold: #C4922A; --gold-soft: #F8F0DE; --ink: #152033; --ink-muted: #5A6578; --ink-faint: #8B95A8; --paper: #FFFEFB; --paper-warm: #F6F3EE; --paper-cool: #F0F4FA; --line: rgba(11, 31, 58, 0.10); --line-strong: rgba(11, 31, 58, 0.18); --shadow-sm: 0 2px 8px rgba(11, 31, 58, 0.06); --shadow-md: 0 8px 28px rgba(11, 31, 58, 0.10); --shadow-lg: 0 20px 50px rgba(11, 31, 58, 0.14); --shadow-blue: 0 12px 40px rgba(61, 125, 217, 0.22); --radius-sm: 8px; --radius: 14px; --radius-lg: 22px; --radius-full: 999px; --font-display: "Noto Serif SC", "Source Serif 4", "Songti SC", serif; --font-body: "Noto Sans SC", "Source Sans 3", "PingFang SC", "Microsoft YaHei", sans-serif; --font-en: "Source Serif 4", Georgia, serif; --header-h: 78px; --container: 1180px; --ease: cubic-bezier(0.22, 1, 0.36, 1); --ease-out: cubic-bezier(0.16, 1, 0.3, 1); } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: clip; max-width: 100%; } body { font-family: var(--font-body); font-size: 16px; line-height: 1.7; color: var(--ink); background: var(--paper); overflow-x: clip; max-width: 100%; -webkit-font-smoothing: antialiased; } body.menu-open { overflow: hidden; touch-action: none; } img { max-width: 100%; height: auto; display: block; } a { color: inherit; text-decoration: none; } button { font-family: inherit; cursor: pointer; border: none; background: none; } ul, ol { list-style: none; } address { font-style: normal; } .container { width: min(100% - 2.5rem, var(--container)); margin-inline: auto; } .container-wide { width: min(100% - 2.5rem, 1320px); margin-inline: auto; } h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; line-height: 1.25; color: var(--navy); letter-spacing: 0.01em; } .eyebrow { display: inline-block; font-family: var(--font-body); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.04em; text-transform: none; color: var(--blue); } .section-title { font-size: clamp(1.75rem, 3.5vw, 2.45rem); margin-top: 0.65rem; margin-bottom: 1rem; } .section-lead { font-size: 1.05rem; color: var(--ink-muted); max-width: 38rem; line-height: 1.8; } html[lang="en"] h1, html[lang="en"] h2, html[lang="en"] h3, html[lang="en"] .section-title { font-family: var(--font-en); letter-spacing: -0.02em; } .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.85rem 1.55rem; font-size: 0.95rem; font-weight: 600; border-radius: var(--radius-full); transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), background 0.25s, color 0.25s, border-color 0.25s; white-space: nowrap; max-width: 100%; box-sizing: border-box; } .btn:focus-visible { outline: 3px solid var(--blue-light); outline-offset: 3px; } .btn-primary { background: linear-gradient(135deg, var(--blue) 0%, #2B6BC7 100%); color: #fff; box-shadow: var(--shadow-blue); } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 40px rgba(61, 125, 217, 0.35); } .btn-secondary { background: #fff; color: var(--navy); border: 1.5px solid var(--line-strong); } .btn-secondary:hover { border-color: var(--blue); color: var(--blue); transform: translateY(-2px); } .btn-red { background: linear-gradient(135deg, var(--red) 0%, #c92f2f 100%); color: #fff; box-shadow: 0 12px 32px rgba(226, 59, 59, 0.28); } .btn-red:hover { transform: translateY(-2px); box-shadow: 0 16px 40px rgba(226, 59, 59, 0.38); } .btn-ghost { color: #fff; border: 1.5px solid rgba(255,255,255,0.45); background: rgba(255,255,255,0.08); backdrop-filter: blur(8px); } .btn-ghost:hover { background: rgba(255,255,255,0.18); border-color: #fff; transform: translateY(-2px); } .btn-lg { padding: 1rem 1.9rem; font-size: 1.02rem; } .site-header { position: sticky; top: 0; z-index: 1000; height: var(--header-h); background: rgba(255, 254, 251, 0.97); border-bottom: 1px solid var(--line); transition: box-shadow 0.3s var(--ease), background 0.3s; } .site-header::before { content: ""; position: absolute; inset: 0; z-index: 0; background: rgba(255, 254, 251, 0.72); backdrop-filter: blur(16px) saturate(1.4); -webkit-backdrop-filter: blur(16px) saturate(1.4); pointer-events: none; } .site-header.scrolled { box-shadow: var(--shadow-sm); } .site-header.scrolled::before { background: rgba(255, 254, 251, 0.9); } .header-inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; height: var(--header-h); gap: 0.75rem; min-width: 0; width: 100%; max-width: 100%; } .logo { display: flex; align-items: center; gap: 0.7rem; flex: 1 1 auto; min-width: 0; z-index: 2; max-width: 100%; } .logo img { width: 52px; height: 52px; object-fit: contain; flex-shrink: 0; } .logo-text { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; overflow: hidden; } .logo-text strong { font-family: var(--font-display); font-size: 1.15rem; color: var(--navy); font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .logo-text span { font-size: 0.68rem; color: var(--ink-muted); letter-spacing: 0.04em; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .nav { display: flex; align-items: center; gap: 0.15rem; } .nav a { position: relative; padding: 0.5rem 0.75rem; font-size: 0.9rem; font-weight: 500; color: var(--ink-muted); border-radius: var(--radius-sm); transition: color 0.2s, background 0.2s; } .nav a:hover, .nav a.active { color: var(--navy); background: var(--blue-pale); } .nav a.active { color: var(--blue); font-weight: 600; } .header-actions { display: flex; align-items: center; gap: 0.5rem; flex: 0 0 auto; flex-shrink: 0; z-index: 2; margin-left: auto; } .lang-toggle { display: flex; background: var(--paper-cool); border: 1px solid var(--line); border-radius: var(--radius-full); padding: 3px; gap: 2px; flex-shrink: 0; } .lang-toggle button { padding: 0.35rem 0.65rem; font-size: 0.78rem; font-weight: 600; border-radius: var(--radius-full); color: var(--ink-muted); transition: all 0.2s var(--ease); -webkit-tap-highlight-color: transparent; } .lang-toggle button.active { background: var(--navy); color: #fff; box-shadow: var(--shadow-sm); } .lang-toggle button:hover:not(.active) { color: var(--navy); } .menu-toggle { display: none; width: 44px; height: 44px; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border-radius: var(--radius-sm); color: var(--navy); background: transparent; position: relative; z-index: 1100; flex-shrink: 0; -webkit-tap-highlight-color: transparent; cursor: pointer; } .menu-toggle:hover, .menu-toggle:focus-visible { background: var(--blue-pale); } .menu-toggle svg { width: 24px; height: 24px; display: block; } .menu-toggle .icon-close { display: none; } .menu-toggle[aria-expanded="true"] .icon-menu { display: none; } .menu-toggle[aria-expanded="true"] .icon-close { display: block; } @media (max-width: 960px) { .site-header { width: 100%; max-width: 100vw; overflow: visible; } .header-inner { gap: 0.5rem; } .logo { flex: 1 1 0; max-width: calc(100% - 7.5rem); } .logo-text span { display: none; } .logo-text strong { font-size: 1rem; } .header-actions { gap: 0.35rem; } .lang-toggle button { padding: 0.3rem 0.55rem; font-size: 0.72rem; } .menu-toggle { display: inline-flex; } .header-actions .btn-donate-header { display: none; } .nav { position: fixed; left: 0; right: 0; top: 0; bottom: 0; width: 100%; height: 100%; height: 100dvh; max-width: 100vw; margin: 0; padding: calc(var(--header-h) + 1.25rem) 1.5rem 2.5rem; flex-direction: column; justify-content: flex-start; align-items: stretch; gap: 0.25rem; background: #FFFEFB; opacity: 0; visibility: hidden; pointer-events: none; transform: translate3d(0, -12px, 0); transition: opacity 0.28s var(--ease), visibility 0.28s, transform 0.28s var(--ease); z-index: 1050; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; box-sizing: border-box; } .nav.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translate3d(0, 0, 0); } .nav a { display: block; width: 100%; font-size: 1.25rem; font-family: var(--font-display); font-weight: 600; padding: 0.95rem 1rem; color: var(--navy); text-align: left; border-radius: var(--radius); border-bottom: 1px solid var(--line); background: transparent; } .nav a:last-child { border-bottom: none; } .nav a:hover, .nav a.active { color: var(--blue); background: var(--blue-pale); } .logo, .header-actions { position: relative; z-index: 1100; } } @media (min-width: 961px) { .menu-toggle { display: none !important; } .header-inner { display: grid; grid-template-columns: minmax(0, 1.15fr) auto minmax(0, 1.15fr); align-items: center; gap: 1rem 1.25rem; width: min(100% - 2.5rem, var(--container)); } .logo { grid-column: 1; justify-self: start; flex: none; max-width: 100%; min-width: 0; } .logo-text { overflow: visible; } .logo-text strong { white-space: nowrap; overflow: visible; text-overflow: clip; font-size: 1.05rem; } .logo-text span { display: block; white-space: nowrap; overflow: visible; text-overflow: clip; font-size: 0.62rem; letter-spacing: 0.01em; } .nav { grid-column: 2; justify-self: center; position: static; width: auto; height: auto; max-width: none; padding: 0; flex-direction: row; justify-content: center; align-items: center; gap: 0.1rem; background: transparent; opacity: 1; visibility: visible; pointer-events: auto; transform: none; overflow: visible; z-index: auto; } .nav a { display: inline-block; width: auto; font-size: 0.9rem; font-family: var(--font-body); font-weight: 500; padding: 0.5rem 0.7rem; text-align: center; border-bottom: none; border-radius: var(--radius-sm); } .header-actions { grid-column: 3; justify-self: end; margin-left: 0; gap: 0.65rem; } } @media (min-width: 1200px) { .nav a { padding: 0.5rem 0.9rem; font-size: 0.92rem; } .logo-text strong { font-size: 1.12rem; } .logo-text span { font-size: 0.68rem; } } @media (min-width: 961px) and (max-width: 1100px) { .nav a { padding: 0.45rem 0.45rem; font-size: 0.84rem; } .header-actions .btn-donate-header { padding: 0.7rem 1.1rem; font-size: 0.88rem; } .logo-text strong { font-size: 0.95rem; } .logo-text span { font-size: 0.58rem; } } .hero { position: relative; min-height: min(88vh, 760px); display: flex; align-items: center; overflow: hidden; max-width: 100%; background: radial-gradient(ellipse 80% 60% at 85% 20%, rgba(61, 125, 217, 0.18) 0%, transparent 55%), radial-gradient(ellipse 50% 50% at 10% 80%, rgba(226, 59, 59, 0.08) 0%, transparent 50%), linear-gradient(165deg, #0B1F3A 0%, #163A6B 45%, #1A4A8A 100%); color: #fff; } .hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background-image: radial-gradient(circle at 20% 30%, rgba(255,255,255,0.04) 0%, transparent 40%), radial-gradient(circle at 70% 70%, rgba(107, 163, 240, 0.12) 0%, transparent 35%); pointer-events: none; } .hero.has-video { background: linear-gradient(165deg, #0b1f3a 0%, #163a6b 45%, #1a4a8a 100%); } .hero-video-wrap { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; } .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 42% 40%; transform: scale(1.12); filter: blur(4px) brightness(0.55) saturate(0.75) contrast(1.05); } .hero-video-fog { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient( 165deg, rgba(8, 20, 40, 0.72) 0%, rgba(15, 40, 75, 0.55) 40%, rgba(10, 28, 55, 0.78) 100% ), radial-gradient(ellipse 70% 60% at 80% 20%, rgba(61, 125, 217, 0.2) 0%, transparent 55%), radial-gradient( ellipse 42% 36% at 100% 100%, rgba(8, 18, 38, 0.92) 0%, rgba(8, 18, 38, 0.55) 38%, transparent 72% ); } .hero.has-video::before { z-index: 2; opacity: 0.5; } .hero.has-video .hero-content { position: relative; z-index: 3; } .hero.has-video .hero-arc, .hero.has-video .hero-emblem { z-index: 2; } .hero.has-video .hero-emblem { opacity: 0.92; } @media (prefers-reduced-motion: reduce) { .hero-video-wrap { display: none; } } @media (max-width: 600px) { .hero.has-video .hero-video { filter: blur(2.5px) brightness(0.5) saturate(0.7); transform: scale(1.1); object-position: 42% 40%; } } .hero-arc { position: absolute; right: -8%; top: 50%; transform: translateY(-50%); width: min(52vw, 560px); height: min(52vw, 560px); border-radius: 50%; border: 2px solid rgba(255,255,255,0.08); pointer-events: none; } .hero-arc::before, .hero-arc::after { content: ""; position: absolute; border-radius: 50%; border: 2px solid transparent; } .hero-arc::before { inset: 8%; border-color: rgba(226, 59, 59, 0.25); border-right-color: transparent; border-bottom-color: transparent; transform: rotate(-25deg); } .hero-arc::after { inset: 18%; border-color: rgba(107, 163, 240, 0.35); border-left-color: transparent; border-top-color: transparent; transform: rotate(15deg); } .hero-emblem { position: absolute; right: max(3%, min(8vw, 100px)); top: 50%; transform: translateY(-50%); width: min(38vw, 320px); aspect-ratio: 1; pointer-events: none; z-index: 2; opacity: 0.95; filter: drop-shadow(0 10px 28px rgba(11, 31, 58, 0.3)); } .hero-heart { display: block; width: 100%; height: auto; } .hero-content { position: relative; z-index: 2; padding: 5rem 0 4.5rem; max-width: 680px; } .hero .eyebrow { color: var(--blue-light); } .hero h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); color: #fff; margin: 0.8rem 0 1.2rem; text-wrap: balance; } .hero-subtitle { font-size: clamp(1.05rem, 2vw, 1.2rem); color: rgba(255,255,255,0.82); line-height: 1.85; margin-bottom: 2rem; max-width: 34rem; } .hero-actions { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-bottom: 2.75rem; } .hero-stats { display: grid; grid-template-columns: repeat(3, auto); gap: 1.5rem 2.25rem; padding-top: 1.75rem; border-top: 1px solid rgba(255,255,255,0.12); width: fit-content; } .hero-stat strong { display: block; font-family: var(--font-display); font-size: 1.65rem; font-weight: 700; color: #fff; line-height: 1.2; } .hero-stat span { font-size: 0.8rem; color: rgba(255,255,255,0.65); letter-spacing: 0.02em; } .page-hero { position: relative; padding: 3.5rem 0 3rem; background: radial-gradient(ellipse 70% 80% at 100% 0%, rgba(61, 125, 217, 0.12) 0%, transparent 50%), linear-gradient(180deg, var(--paper-cool) 0%, var(--paper) 100%); border-bottom: 1px solid var(--line); overflow: hidden; } .page-hero::after { content: ""; position: absolute; right: -40px; bottom: -60px; width: 220px; height: 220px; border-radius: 50%; border: 2px solid var(--line); opacity: 0.7; } .page-hero h1 { font-size: clamp(1.9rem, 4vw, 2.75rem); margin: 0.5rem 0 0.75rem; } .page-hero p { color: var(--ink-muted); max-width: 36rem; font-size: 1.05rem; } .breadcrumb { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; color: var(--ink-faint); margin-bottom: 0.75rem; } .breadcrumb a:hover { color: var(--blue); } .breadcrumb .sep { opacity: 0.5; } .section { padding: 5rem 0; } .section-sm { padding: 3.5rem 0; } .section-header { margin-bottom: 2.75rem; } .section-header.center { text-align: center; display: flex; flex-direction: column; align-items: center; } .section-header.center .section-lead { margin-inline: auto; } .section-header.center .eyebrow { justify-content: center; } .bg-cool { background: var(--paper-cool); } .bg-warm { background: var(--paper-warm); } .bg-navy { background: linear-gradient(160deg, var(--navy) 0%, var(--navy-soft) 100%); color: #fff; } .bg-navy .section-title, .bg-navy h2, .bg-navy h3 { color: #fff; } .bg-navy .section-lead, .bg-navy p { color: rgba(255,255,255,0.75); } .bg-navy .eyebrow { color: var(--blue-light); } .mission-band { position: relative; padding: 4.5rem 0; background: linear-gradient(135deg, rgba(11, 31, 58, 0.97) 0%, rgba(22, 58, 107, 0.95) 100%); color: #fff; overflow: hidden; } .mission-band::before { content: ""; position: absolute; left: -80px; top: 50%; transform: translateY(-50%); width: 280px; height: 280px; border-radius: 50%; border: 40px solid rgba(226, 59, 59, 0.08); pointer-events: none; } .mission-inner { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 2.5rem; align-items: start; max-width: 900px; } .mission-quote-mark { font-family: var(--font-display); font-size: 5rem; line-height: 0.7; color: var(--red); opacity: 0.85; user-select: none; } .mission-quote-end { display: block; text-align: right; margin-top: 0.85rem; font-size: 3.75rem; line-height: 0.55; opacity: 0.75; } .mission-label { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blue-light); margin-bottom: 0.85rem; } .mission-text { font-family: var(--font-display); font-size: clamp(1.15rem, 2.2vw, 1.4rem); line-height: 1.85; color: rgba(255,255,255,0.92); font-weight: 500; } html[lang="en"] .mission-text { font-family: var(--font-en); font-style: italic; font-weight: 400; } .services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; } .service-card { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.75rem 1.5rem 1.6rem; transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), border-color 0.25s; overflow: hidden; } .service-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); border-color: rgba(61, 125, 217, 0.35); } .service-icon { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; border-radius: 14px; background: var(--blue-pale); color: var(--blue); margin-bottom: 1.15rem; } .service-icon svg { width: 26px; height: 26px; stroke-width: 1.6; } .service-card:nth-child(2) .service-icon, .service-card:nth-child(5) .service-icon { background: var(--red-soft); color: var(--red); } .service-card:nth-child(3) .service-icon, .service-card:nth-child(6) .service-icon { background: var(--gold-soft); color: var(--gold); } .service-card h3 { font-size: 1.15rem; margin-bottom: 0.55rem; } .service-card p { font-size: 0.92rem; color: var(--ink-muted); line-height: 1.7; } .cta-strip { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.5rem; align-items: stretch; } .cta-card { border-radius: var(--radius-lg); padding: 2.25rem; display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem; min-height: 220px; position: relative; overflow: hidden; } .cta-card h3 { font-size: 1.45rem; margin-bottom: 0.5rem; } .cta-card p { font-size: 0.95rem; line-height: 1.7; max-width: 28rem; } .cta-primary { background: linear-gradient(135deg, var(--navy) 0%, #1A4A8A 100%); color: #fff; } .cta-primary h3 { color: #fff; } .cta-primary p { color: rgba(255,255,255,0.78); } .cta-secondary { background: linear-gradient(145deg, #fff 0%, var(--blue-pale) 100%); border: 1px solid var(--line); color: var(--ink); } .cta-secondary h3 { color: var(--navy); } .cta-secondary p { color: var(--ink-muted); } .events-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } .event-card { display: grid; grid-template-columns: 100px 1fr; gap: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease); } .event-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); } .event-date { display: flex; flex-direction: column; align-items: center; justify-content: center; background: linear-gradient(180deg, var(--navy) 0%, var(--navy-soft) 100%); color: #fff; padding: 1.25rem 0.75rem; text-align: center; } .event-date .month { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--blue-light); margin-bottom: 0.2rem; } .event-date .day { font-family: var(--font-display); font-size: 2rem; font-weight: 700; line-height: 1; } .event-date .year { font-size: 0.72rem; color: rgba(255,255,255,0.55); margin-top: 0.3rem; } .event-body { padding: 1.35rem 1.5rem; } .event-tag { display: inline-block; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; padding: 0.25rem 0.65rem; border-radius: var(--radius-full); margin-bottom: 0.55rem; } .event-tag.culture { background: var(--gold-soft); color: #8B6914; } .event-tag.cny { background: var(--red-soft); color: var(--red); } .event-tag.community { background: var(--blue-pale); color: var(--blue); } .event-tag.senior { background: #E8F5E9; color: #2E7D32; } .event-body h3 { font-size: 1.1rem; margin-bottom: 0.4rem; } .event-body p { font-size: 0.9rem; color: var(--ink-muted); margin-bottom: 0.75rem; line-height: 1.65; } .event-meta { display: flex; flex-wrap: wrap; gap: 1rem; font-size: 0.82rem; color: var(--ink-faint); } .event-meta span { display: inline-flex; align-items: center; gap: 0.35rem; } .event-meta svg { width: 14px; height: 14px; opacity: 0.7; } .event-featured { grid-column: 1 / -1; display: grid; grid-template-columns: 1.1fr 1fr; min-height: 280px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 0.25rem; } .event-featured-visual { position: relative; background: radial-gradient(circle at 30% 40%, rgba(226, 59, 59, 0.35) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(196, 146, 42, 0.3) 0%, transparent 45%), linear-gradient(145deg, #8B1A1A 0%, #C4922A 50%, #E23B3B 100%); display: flex; align-items: center; justify-content: center; padding: 2rem; overflow: hidden; } .event-featured-visual::before { content: "福"; font-family: var(--font-display); font-size: clamp(6rem, 14vw, 10rem); color: rgba(255,255,255,0.12); position: absolute; font-weight: 700; } .event-featured-badge { position: relative; z-index: 1; text-align: center; color: #fff; } .event-featured-badge .lantern { font-size: 3rem; margin-bottom: 0.5rem; filter: drop-shadow(0 4px 12px rgba(0,0,0,0.2)); } .event-featured-badge strong { display: block; font-family: var(--font-display); font-size: 1.5rem; letter-spacing: 0.08em; } .event-featured-badge span { font-size: 0.9rem; opacity: 0.85; } .event-featured-body { padding: 2.25rem 2rem; display: flex; flex-direction: column; justify-content: center; } .event-featured-body h3 { font-size: 1.55rem; margin: 0.4rem 0 0.75rem; } .event-featured-body p { color: var(--ink-muted); margin-bottom: 1.25rem; line-height: 1.75; } .past-event { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); margin-bottom: 2.5rem; } .past-event-hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: 0; min-height: 320px; } .past-event-poster { position: relative; background: var(--paper-cool); min-height: 280px; } .past-event-poster img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; min-height: 320px; } .past-event-body { padding: 2rem 1.85rem; display: flex; flex-direction: column; justify-content: center; } .past-event-body h2 { font-size: clamp(1.35rem, 2.5vw, 1.75rem); margin: 0.45rem 0 0.75rem; } .past-event-body > p { color: var(--ink-muted); font-size: 0.98rem; line-height: 1.75; margin-bottom: 1rem; } .past-event-sponsor { display: flex; align-items: center; gap: 0.85rem; margin: 1rem 0 0.5rem; padding: 0.75rem 0.9rem; background: var(--paper-cool); border-radius: var(--radius); border: 1px solid var(--line); } .past-event-sponsor img { width: 72px; height: 48px; object-fit: contain; background: #fff; border-radius: 8px; padding: 4px; } .past-event-sponsor strong { display: block; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-faint); font-weight: 600; margin-bottom: 0.15rem; } .past-event-sponsor span { font-weight: 600; color: var(--navy); font-size: 0.95rem; } .past-event-sponsor small { display: block; color: var(--ink-muted); font-size: 0.8rem; font-weight: 400; } .event-gallery-title { font-size: 1.15rem; margin: 0 0 1rem; padding: 0 1.5rem; } .event-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.55rem; padding: 0 1.5rem 1.5rem; } .event-gallery a { display: block; border-radius: 10px; overflow: hidden; aspect-ratio: 1; background: var(--paper-cool); border: 1px solid var(--line); transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease); } .event-gallery a:hover { transform: scale(1.02); box-shadow: var(--shadow-md); } .event-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; } .event-gallery a.wide { grid-column: span 2; aspect-ratio: 16 / 10; } .event-recog { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 0 1.5rem 1.75rem; } .event-recog figure { margin: 0; background: var(--paper-cool); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; } .event-recog img { width: 100%; height: auto; display: block; max-height: 360px; object-fit: contain; background: #fff; } .event-recog figcaption { padding: 0.65rem 0.85rem; font-size: 0.82rem; color: var(--ink-muted); line-height: 1.5; } .event-tag.past { background: #E8EEF7; color: #2A4A7A; } @media (max-width: 900px) { .past-event-hero { grid-template-columns: 1fr; } .past-event-poster img { min-height: 240px; max-height: 360px; } .event-gallery { grid-template-columns: repeat(2, 1fr); } .event-gallery a.wide { grid-column: span 2; } .event-recog { grid-template-columns: 1fr; } } .team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; max-width: 360px; } .team-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 2rem 1.75rem; text-align: center; transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease); } .team-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); } .team-avatar { width: 100px; height: 100px; margin: 0 auto 1.25rem; border-radius: 50%; background: radial-gradient(circle at 35% 30%, var(--blue-light), var(--blue) 50%, var(--navy)); display: flex; align-items: center; justify-content: center; color: #fff; font-family: var(--font-display); font-size: 2rem; font-weight: 700; box-shadow: 0 8px 24px rgba(61, 125, 217, 0.3); position: relative; overflow: hidden; } .team-avatar::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid var(--blue-pale); pointer-events: none; z-index: 1; } .team-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; } .team-avatar .team-photo-cherry { object-position: center 25%; } .team-avatar.has-photo { background: var(--paper-cool); font-size: 0; color: transparent; } .team-card h3 { font-size: 1.25rem; margin-bottom: 0.25rem; } .team-role { font-size: 0.88rem; color: var(--blue); font-weight: 600; margin-bottom: 0.85rem; } .team-card p { font-size: 0.9rem; color: var(--ink-muted); line-height: 1.7; } .team-card-featured { grid-column: 1 / -1; display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 1.75rem; text-align: left; } .team-card-featured .team-avatar { width: 160px; height: 160px; margin: 0; } .team-card-featured .team-role { color: var(--blue); } @media (max-width: 600px) { .team-card-featured { grid-template-columns: 1fr; text-align: center; } .team-card-featured .team-avatar { margin: 0 auto; } } .team-coming { border-style: dashed; background: var(--paper-cool); display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 280px; color: var(--ink-faint); } .team-coming .plus-icon { width: 48px; height: 48px; border-radius: 50%; border: 2px dashed var(--line-strong); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 0.75rem; color: var(--ink-muted); } .sponsors-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; } @media (max-width: 900px) { .sponsors-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 480px) { .sponsors-grid { grid-template-columns: 1fr; } } .sponsor-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem 1.25rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.85rem; min-height: 180px; text-align: center; transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s; } .sponsor-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--blue-light); } .sponsor-card img { max-height: 90px; max-width: 100%; width: auto; object-fit: contain; filter: none; } .sponsor-card .sponsor-name { font-size: 0.82rem; font-weight: 600; color: var(--ink-muted); line-height: 1.4; } .sponsor-card .sponsor-name-en { font-size: 0.72rem; color: var(--ink-faint); font-weight: 400; } .logo-marquee { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.5rem 2rem; } .logo-marquee .sponsor-mini { width: 120px; height: 72px; display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 0.6rem; transition: box-shadow 0.25s, transform 0.25s; } .logo-marquee .sponsor-mini:hover { box-shadow: var(--shadow-sm); transform: scale(1.04); } .logo-marquee .sponsor-mini img { max-height: 52px; max-width: 100%; object-fit: contain; } .zelle-hero { display: grid; grid-template-columns: 1fr 1.05fr; gap: 2rem; align-items: center; background: radial-gradient(ellipse 80% 70% at 0% 0%, rgba(108, 43, 217, 0.08) 0%, transparent 55%), linear-gradient(165deg, #fff 0%, #F7F4FC 100%); border: 1px solid rgba(108, 43, 217, 0.15); border-radius: var(--radius-lg); padding: 2rem 2.25rem; box-shadow: var(--shadow-md); margin-bottom: 2.5rem; position: relative; overflow: hidden; } .zelle-hero::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #6C2BD9 0%, #9B6DFF 50%, #6C2BD9 100%); } .zelle-copy .eyebrow { color: #6C2BD9; } .zelle-copy h2 { font-size: clamp(1.45rem, 3vw, 1.9rem); margin: 0.5rem 0 0.75rem; color: var(--navy); } .zelle-copy > p { color: var(--ink-muted); font-size: 1.02rem; line-height: 1.75; margin-bottom: 1.25rem; max-width: 32rem; } .zelle-steps { display: flex; flex-direction: column; gap: 0.65rem; margin-bottom: 1.25rem; } .zelle-steps li { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.95rem; color: var(--ink); line-height: 1.5; } .zelle-steps .num { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; background: #6C2BD9; color: #fff; font-size: 0.8rem; font-weight: 700; display: flex; align-items: center; justify-content: center; } .zelle-note { font-size: 0.88rem; color: var(--ink-muted); line-height: 1.6; padding: 0.85rem 1rem; background: rgba(108, 43, 217, 0.06); border-radius: var(--radius-sm); border-left: 3px solid #6C2BD9; } .zelle-qr-wrap { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.85rem; } .zelle-qr-card { background: #fff; border-radius: 18px; padding: 1.15rem 1.15rem 0.85rem; border: 1px solid rgba(108, 43, 217, 0.12); box-shadow: 0 12px 40px rgba(108, 43, 217, 0.12); max-width: 300px; width: 100%; } .zelle-qr-card img { width: 100%; height: auto; display: block; border-radius: 8px; image-rendering: auto; } .zelle-badge { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; font-size: 1.05rem; color: #6C2BD9; letter-spacing: 0.02em; } .zelle-badge svg { width: 22px; height: 22px; } @media (max-width: 800px) { .zelle-hero { grid-template-columns: 1fr; padding: 1.5rem 1.25rem 1.75rem; text-align: center; } .zelle-copy .eyebrow { justify-content: center; } .zelle-copy > p { margin-inline: auto; } .zelle-steps { align-items: flex-start; text-align: left; max-width: 320px; margin-inline: auto; } .zelle-note { text-align: left; } .zelle-qr-card { max-width: 260px; } } .donate-layout { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 2rem; align-items: start; } .donate-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.85rem; margin: 1.5rem 0; } .donate-amount { padding: 1rem; text-align: center; border: 1.5px solid var(--line); border-radius: var(--radius); background: #fff; font-weight: 700; font-size: 1.15rem; color: var(--navy); transition: all 0.2s var(--ease); cursor: pointer; } .donate-amount:hover, .donate-amount.selected { border-color: var(--blue); background: var(--blue-pale); color: var(--blue); box-shadow: var(--shadow-sm); } .donate-amount.selected { border-width: 2px; } .donate-impact { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.75rem; } .donate-impact h3 { font-size: 1.15rem; margin-bottom: 1.15rem; } .impact-list { display: flex; flex-direction: column; gap: 1rem; } .impact-item { display: flex; gap: 0.85rem; align-items: flex-start; } .impact-item .amount { flex-shrink: 0; width: 64px; height: 36px; display: flex; align-items: center; justify-content: center; background: var(--blue-pale); color: var(--blue); font-weight: 700; font-size: 0.85rem; border-radius: var(--radius-sm); } .impact-item p { font-size: 0.9rem; color: var(--ink-muted); line-height: 1.55; padding-top: 0.35rem; } .donate-form-card { background: linear-gradient(160deg, var(--navy) 0%, #1A4A8A 100%); color: #fff; border-radius: var(--radius-lg); padding: 2rem; position: sticky; top: calc(var(--header-h) + 1.25rem); } .donate-form-card h3 { color: #fff; font-size: 1.35rem; margin-bottom: 0.5rem; } .donate-form-card > p { color: rgba(255,255,255,0.7); font-size: 0.9rem; margin-bottom: 1.5rem; } .form-group { margin-bottom: 1rem; } .form-group label { display: block; font-size: 0.82rem; font-weight: 600; margin-bottom: 0.4rem; color: rgba(255,255,255,0.85); } .form-group input, .form-group textarea, .form-group select { width: 100%; padding: 0.75rem 1rem; border-radius: var(--radius-sm); border: 1.5px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.1); color: #fff; font-family: inherit; font-size: 0.95rem; transition: border-color 0.2s, background 0.2s; } .form-group input::placeholder, .form-group textarea::placeholder { color: rgba(255,255,255,0.4); } .form-group input:focus, .form-group textarea:focus, .form-group select:focus { outline: none; border-color: var(--blue-light); background: rgba(255,255,255,0.15); } .form-group select option { background: var(--navy); color: #fff; } .form-note { font-size: 0.78rem; color: rgba(255,255,255,0.55); margin-top: 1rem; line-height: 1.5; } .form-light .form-group label { color: var(--ink-muted); } .form-light .form-group input, .form-light .form-group textarea, .form-light .form-group select { border: 1.5px solid var(--line); background: #fff; color: var(--ink); } .form-light .form-group input::placeholder, .form-light .form-group textarea::placeholder { color: var(--ink-faint); } .form-light .form-group input:focus, .form-light .form-group textarea:focus, .form-light .form-group select:focus { border-color: var(--blue); background: var(--paper); box-shadow: 0 0 0 3px rgba(61, 125, 217, 0.12); } .form-light .form-group select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235A6578' d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; } .contact-layout { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 2rem; align-items: start; } .contact-info-card { background: linear-gradient(160deg, var(--navy) 0%, var(--navy-soft) 100%); color: #fff; border-radius: var(--radius-lg); padding: 2.25rem; position: relative; overflow: hidden; } .contact-info-card::after { content: ""; position: absolute; right: -30px; bottom: -30px; width: 160px; height: 160px; border-radius: 50%; border: 30px solid rgba(61, 125, 217, 0.15); } .contact-info-card h2 { color: #fff; font-size: 1.45rem; margin-bottom: 0.5rem; } .contact-info-card > p { color: rgba(255,255,255,0.7); margin-bottom: 1.75rem; font-size: 0.95rem; } .contact-row { display: flex; gap: 1rem; margin-bottom: 1.35rem; position: relative; z-index: 1; } .contact-icon { width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px; background: rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: center; color: var(--blue-light); } .contact-icon svg { width: 20px; height: 20px; } .contact-row strong { display: block; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.55); margin-bottom: 0.2rem; } .contact-row a, .contact-row span { color: #fff; font-size: 1.02rem; font-weight: 500; } .contact-row a:hover { color: var(--blue-light); } .contact-wechat { position: relative; z-index: 2; margin-top: 0.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.12); clear: both; } .contact-wechat > strong { display: block; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); margin-bottom: 0.35rem; } .contact-wechat > p { font-size: 0.92rem; color: rgba(255, 255, 255, 0.78); margin-bottom: 0.9rem; line-height: 1.5; } .contact-wechat-qr { display: inline-block; background: #ffffff !important; border-radius: 12px; padding: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2); line-height: 0; position: relative; z-index: 3; overflow: visible; } .contact-wechat-qr img { display: block !important; width: 180px !important; height: auto !important; max-width: min(180px, 70vw) !important; min-height: 140px; object-fit: contain; background: #ffffff !important; opacity: 1 !important; visibility: visible !important; border: 0; } .contact-form-wrap { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 2.25rem; box-shadow: var(--shadow-sm); } .contact-form-wrap h3 { font-size: 1.25rem; margin-bottom: 0.35rem; } .contact-form-wrap > p { color: var(--ink-muted); font-size: 0.92rem; margin-bottom: 1.5rem; } .map-placeholder { margin-top: 2rem; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); background: var(--paper-cool); min-height: 280px; display: flex; align-items: center; justify-content: center; position: relative; } .map-placeholder iframe { width: 100%; height: 320px; border: 0; } .site-footer { background: var(--navy); color: rgba(255,255,255,0.75); padding-top: 3.5rem; } .footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,0.1); } .footer-brand .logo { margin-bottom: 1rem; } .footer-brand .logo img { width: 48px; height: 48px; background: #fff; border-radius: 50%; padding: 2px; } .footer-brand .logo-text strong { color: #fff; } .footer-brand .logo-text span { color: rgba(255,255,255,0.55); } .footer-brand p { font-size: 0.9rem; line-height: 1.75; max-width: 280px; color: rgba(255,255,255,0.6); } .footer-col h4 { color: #fff; font-family: var(--font-body); font-size: 0.85rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 1.1rem; } .footer-col ul { display: flex; flex-direction: column; gap: 0.55rem; } .footer-col a { font-size: 0.92rem; color: rgba(255,255,255,0.6); transition: color 0.2s; } .footer-col a:hover { color: var(--blue-light); } .footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.35rem 0; font-size: 0.82rem; color: rgba(255,255,255,0.4); } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; } .text-center { text-align: center; } .mt-1 { margin-top: 0.5rem; } .mt-2 { margin-top: 1rem; } .mt-3 { margin-top: 1.5rem; } .mb-2 { margin-bottom: 1rem; } .flex-center { display: flex; justify-content: center; gap: 0.85rem; flex-wrap: wrap; } .reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out); } .reveal.visible { opacity: 1; transform: translateY(0); } .reveal-delay-1 { transition-delay: 0.1s; } .reveal-delay-2 { transition-delay: 0.2s; } .reveal-delay-3 { transition-delay: 0.3s; } .reveal-delay-4 { transition-delay: 0.4s; } .toast { position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%) translateY(100px); background: var(--navy); color: #fff; padding: 0.9rem 1.5rem; border-radius: var(--radius-full); font-size: 0.9rem; font-weight: 500; box-shadow: var(--shadow-lg); z-index: 9999; opacity: 0; transition: transform 0.4s var(--ease), opacity 0.4s; max-width: min(90vw, 420px); text-align: center; } .toast.show { transform: translateX(-50%) translateY(0); opacity: 1; } .toast.toast-error { background: #8B1A1A; } @media (max-width: 900px) { .services-grid { grid-template-columns: repeat(2, 1fr); } .events-grid { grid-template-columns: 1fr; } .event-featured { grid-template-columns: 1fr; } .event-featured-visual { min-height: 180px; } .cta-strip { grid-template-columns: 1fr; } .donate-layout, .contact-layout { grid-template-columns: 1fr; } .donate-form-card { position: static; } .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; } .mission-inner { grid-template-columns: 1fr; gap: 0.5rem; } .mission-quote-mark { font-size: 3.5rem; } .mission-quote-end { font-size: 2.75rem; margin-top: 0.5rem; } .hero-stats { grid-template-columns: repeat(3, 1fr); gap: 1rem; width: 100%; } } @media (max-width: 600px) { :root { --header-h: 64px; } .container, .container-wide { width: min(100% - 1.25rem, var(--container)); max-width: 100%; } .logo img { width: 40px; height: 40px; } .logo-text strong { font-size: 0.95rem; } .logo { max-width: calc(100% - 7rem); } .lang-toggle button { padding: 0.28rem 0.45rem; font-size: 0.7rem; } .menu-toggle { width: 42px; height: 42px; min-width: 42px; } .services-grid { grid-template-columns: 1fr; } .donate-options { grid-template-columns: repeat(3, 1fr); gap: 0.5rem; } .donate-amount { padding: 0.75rem 0.35rem; font-size: 0.95rem; } .event-card { grid-template-columns: 72px 1fr; } .event-body { padding: 1rem 1rem; } .event-date .day { font-size: 1.45rem; } .footer-grid { grid-template-columns: 1fr; gap: 1.75rem; } .hero { min-height: auto; overflow: hidden; } .hero-content { padding: 3rem 0 2.5rem; max-width: 100%; } .hero-actions { width: 100%; } .hero-actions .btn { flex: 1 1 auto; min-width: min(100%, 140px); white-space: normal; text-align: center; } .hero-stats { grid-template-columns: 1fr; gap: 0.85rem; } .hero-stat { display: flex; align-items: baseline; gap: 0.65rem; } .hero-stat strong { font-size: 1.35rem; } .hero-arc, .hero-emblem { display: none; } .section { padding: 3rem 0; } .sponsors-grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; } .sponsor-card { min-height: 150px; padding: 1rem 0.75rem; } .page-hero { padding: 2rem 0 1.5rem; } .btn { max-width: 100%; } .cta-card { padding: 1.5rem; } .contact-form-wrap, .contact-info-card, .donate-form-card { padding: 1.35rem; } .map-placeholder iframe { height: 240px; } } @media (max-width: 380px) { .logo-text strong { font-size: 0.88rem; } .donate-options { grid-template-columns: repeat(2, 1fr); } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } .reveal { opacity: 1; transform: none; } } @media print { .site-header, .site-footer, .menu-toggle, .lang-toggle { display: none; } body { color: #000; background: #fff; } } :root { --navy: #0b2744; --navy-soft: #173956; --blue: #174e70; --blue-pale: #eaf0f2; --red: #aa2e2d; --gold: #d6ad61; --paper: #fffefa; --paper-warm: #f4f1e9; --paper-cool: #f0f3f2; --ink: #172d3c; --ink-muted: #566570; --ink-faint: #73818a; --line: rgba(11,39,68,.14); --line-strong: rgba(11,39,68,.28); --radius-sm: 2px; --radius: 3px; --radius-lg: 3px; --radius-full: 3px; --header-h: 84px; --container: 1220px; } body { background: var(--paper); } html[lang="en"] {--font-display:"Source Serif 4",Georgia,serif;--font-body:"Source Sans 3",Arial,"PingFang SC","Microsoft YaHei",sans-serif;} html[lang="en"] .btn {font-size:1rem;letter-spacing:0;} html[lang="en"] .form-group input, html[lang="en"] .form-group textarea, html[lang="en"] .form-group select {font-size:1rem;} html[lang="en"] .service-item p, html[lang="en"] .team-card p:not(.team-role) {font-size:1rem;line-height:1.7;} html[lang="en"] .team-summary {font-size:1rem !important;} html[lang="en"] .team-background {max-width:70ch;} html[lang="en"] .civic-hero-lead {line-height:1.75;} ::selection { background: #e5c681; color: var(--navy); } :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; } .container { width: min(100% - 3.5rem, var(--container)); } .section { padding: clamp(4.75rem, 8vw, 7.5rem) 0; } .section-sm { padding: 4rem 0; } .section-title { font-size: clamp(2rem, 3.2vw, 3.2rem); letter-spacing: -.035em; line-height: 1.23; margin-top: .45rem; } html[lang="zh-CN"] .section-title { letter-spacing: 0; } .section-lead { color: var(--ink-muted); line-height: 1.8; } .eyebrow, .section-index, .civic-kicker { font: 700 .75rem/1.5 var(--font-body); letter-spacing: .13em; text-transform: uppercase; color: var(--blue); } .section-index { margin-bottom: 1rem; } .btn { border-radius: 2px; min-height: 48px; padding: .8rem 1.4rem; font-size: .87rem; letter-spacing: .015em; box-shadow: none; transition: background-color .18s, color .18s, border-color .18s; } .btn:hover, .btn-primary:hover, .btn-red:hover, .btn-secondary:hover { transform: none; box-shadow: none; } .btn-primary, .btn-red { background: var(--red); color: #fff; box-shadow: none; } .btn-primary:hover, .btn-red:hover { background: #872521; } .btn-secondary { border: 1px solid var(--line-strong); color: var(--navy); } .btn-secondary:hover { border-color: var(--navy); color: var(--navy); } .btn-gold { background: var(--gold); color: var(--navy); } .btn-gold:hover { background: #e7c884; } .btn-ghost { border: 1px solid rgba(255,255,255,.6); background: transparent; color: #fff; backdrop-filter: none; } .btn-ghost:hover { background: #fff; color: var(--navy); } .inline-arrow { display: inline-flex; align-items: center; gap: .7rem; color: var(--navy); font-size: .88rem; font-weight: 700; border-bottom: 1px solid currentColor; padding-bottom: .25rem; width: fit-content; line-height: 1.4; } .inline-arrow::after { content: '↗'; font-size: 1.1rem; line-height: 1; } .inline-arrow:hover { color: var(--red); } .site-header, .site-header.scrolled { background: var(--paper); box-shadow: none; border-bottom: 1px solid var(--line); } .site-header::before, .site-header.scrolled::before { display: none; } .logo { gap: .8rem; } .logo img { width: 56px; height: 56px; clip-path: circle(45.5% at center); } .logo img.compact-emblem {clip-path:none;} .logo-text strong { font-size: .96rem; letter-spacing: 0; } .logo-text span { font-size: .62rem; letter-spacing: .01em; } html[lang="en"] .logo-text strong {white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2;max-width:23ch;font-size:.98rem;} html[lang="en"] .logo-text span {font-size:.63rem;margin-top:.3rem;letter-spacing:.02em;} .footer-brand .logo-text {overflow:visible;} .service-item h3 a {color:inherit;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:.25em;} .service-item h3 a:hover {color:var(--red);} .program-layout {display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.6fr);gap:clamp(2rem,5vw,5rem);align-items:start;} .program-guide {position:sticky;top:calc(var(--header-h) + 2rem);} .program-guide h2 {font-size:1.55rem;margin-bottom:1rem;} .program-guide p {color:var(--ink-muted);margin-bottom:1.5rem;line-height:1.8;} .program-guide .inline-arrow {display:flex;margin-top:1.25rem;} .program-row {padding:1.75rem 0;border-top:1px solid var(--line);scroll-margin-top:calc(var(--header-h) + 2rem);} .program-row:first-child {padding-top:0;border-top:0;} .program-row h2 {font-size:1.6rem;margin-bottom:.8rem;} .program-row p {max-width:68ch;color:var(--ink-muted);line-height:1.85;} .community-questions {background:var(--paper-warm);} .community-questions h2 {font-size:clamp(1.6rem,2.4vw,2.3rem);margin-bottom:1.5rem;} .community-faq {padding:1.15rem 0;border-top:1px solid var(--line);} .community-faq summary {font-size:1rem;font-weight:600;color:var(--navy);cursor:pointer;min-height:44px;align-content:center;} .community-faq p {margin:1rem 0 .5rem;max-width:70ch;color:var(--ink-muted);line-height:1.8;} .program-next {margin-top:1.5rem;} @media(min-width:961px) {.header-inner {grid-template-columns:minmax(220px,1fr) auto auto;gap:1.25rem;}.logo {gap:.65rem;} .header-actions {gap:.55rem;}} @media(max-width:960px) {html[lang="en"] {--header-h:84px;}html[lang="en"] .site-header .logo-text strong {font-size:.93rem;}.program-layout {grid-template-columns:1fr;}.program-guide {position:static;max-width:42rem;}} @media(max-width:700px) {html[lang="en"] {--header-h:84px;}html[lang="en"] .site-header .logo {max-width:none;flex:1;gap:.55rem;}html[lang="en"] .site-header .logo-text strong {font-size:.87rem;max-width:22ch;}html[lang="en"] .site-header .logo-text span {display:none;}.header-inner.container {width:calc(100% - 2rem);}.header-actions {gap:.2rem;}.header-inner {gap:.4rem;} .program-row h2 {font-size:1.4rem;}} @media(max-width:360px) {html[lang="en"] .site-header .logo-text strong {font-size:.81rem;}.site-header .logo img {width:36px;height:36px;}.site-header .lang-toggle a {padding-inline:.35rem;}} .nav { gap: .25rem; } .nav a { font-family:var(--font-display); font-size:1rem; font-weight:500; line-height:1.4; letter-spacing:0; color:var(--navy); border-radius:0; padding:.6rem .56rem; } html[lang="en"] .nav a {font-family:var(--font-en);} .nav a:hover, .nav a.active { color: var(--red); background: transparent; } .nav a.active::after { content: ''; position: absolute; left: .56rem; right: .56rem; bottom: 0; border-bottom: 2px solid var(--red); } .header-actions { gap: .75rem; } .lang-toggle { border: 0; border-radius: 0; background: transparent; padding: 0; gap: 0; } .lang-toggle button { color: var(--navy); border-radius: 0; padding: .45rem .53rem; font-size: .76rem; } .lang-toggle button + button { border-left: 1px solid var(--line-strong); } .lang-toggle button.active { background: transparent; color: var(--red); box-shadow: none; text-decoration: underline; text-underline-offset: .3rem; } .header-actions .btn-donate-header { min-height: 42px; padding: .65rem 1rem; } .civic-hero { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); min-height: min(660px, calc(100svh - var(--header-h))); background: var(--navy); } .civic-hero-copy { display: flex; align-items: center; color: #fff; padding: clamp(3.5rem, 6.5vw, 7rem) clamp(2rem, 6vw, 7rem); } .civic-hero-inner { max-width: 630px; margin-left: auto; } .civic-kicker { color: var(--gold); margin-bottom: 1.6rem; } .civic-hero h1 { color: #fff; font-size: clamp(2.8rem, 4.7vw, 5rem); font-weight: 600; line-height: 1.18; letter-spacing: -.05em; max-width: 12ch; } .civic-hero h1 span { display: block; } html[lang="zh-CN"] .civic-hero h1 { font-size: clamp(2.7rem, 4.1vw, 4.2rem); letter-spacing: -.035em; max-width: none; } .civic-hero-lead { color: #d6e0e6; max-width: 31rem; font-size: clamp(1rem, 1.3vw, 1.15rem); line-height: 1.85; margin-top: 2rem; } .civic-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.35rem 1.8rem; margin-top: 2.2rem; } .civic-text-link { color: #fff; font-size: .88rem; font-weight: 600; border-bottom: 1px solid var(--gold); padding-bottom: .2rem; } .civic-text-link::after { content: ' ↗'; color: var(--gold); } .civic-text-link:hover { color: var(--gold); } .civic-hero-image { min-width: 0; position: relative; overflow: hidden; background: #24425c; } .civic-hero-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .civic-hero-image figcaption { position: absolute; left: 1.6rem; bottom: 1.3rem; background: rgba(7,29,49,.86); color: #fff; padding: .55rem .75rem; font-size: .7rem; letter-spacing: .02em; } .home-route-rail { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--paper-cool); border-bottom: 1px solid var(--line); } .home-route-rail a { display: flex; gap: 1.1rem; align-items: center; padding: 1.2rem clamp(1.2rem, 3vw, 3rem); border-right: 1px solid var(--line); font-size: .84rem; color: var(--navy); } .home-route-rail a:last-child { border-right: 0; } .home-route-rail a:hover { background: #e5ebeb; } .home-route-rail a > span:first-child { color: var(--red); font-size: .7rem; font-weight: 700; } .home-route-rail a strong { flex: 1; font-weight: 700; } .home-route-rail a > span:last-child { color: var(--blue); } .home-intro { background: var(--paper-warm); border-bottom: 1px solid var(--line); padding: clamp(3.3rem, 5vw, 5rem) 0; } .home-intro-grid { display: grid; grid-template-columns: .65fr 2fr .8fr; align-items: start; gap: 2rem; } .home-intro h2 { font-size: clamp(1.8rem, 2.5vw, 2.8rem); max-width: 21ch; margin-bottom: 1rem; letter-spacing: -.03em; } .home-intro p:not(.section-index) { color: var(--ink-muted); max-width: 53rem; } .home-intro .inline-arrow { justify-self: end; margin-top: .45rem; } .section-heading-row { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2.65rem; } .section-heading-row .section-title { margin-bottom: 0; max-width: 21ch; } .section-heading-row .section-lead { max-width: 23rem; margin-bottom: .25rem; } .section-heading-row .inline-arrow { flex-shrink: 0; margin-bottom: .4rem; } .home-services { background: var(--paper); } .service-directory { display: grid; grid-template-columns: 1fr 2.05fr; border-top: 2px solid var(--navy); border-bottom: 1px solid var(--line); } .service-directory-aside { background: var(--navy); color: #fff; padding: clamp(2rem, 3vw, 3.3rem); display: flex; flex-direction: column; align-items: start; } .service-directory-label { font-size: .7rem; color: var(--gold); font-weight: 700; letter-spacing: .12em; margin-bottom: 2rem; } .service-directory-aside h3 { color: #fff; font-size: clamp(1.45rem, 2vw, 2.2rem); font-weight: 600; line-height: 1.35; max-width: 16ch; } .service-directory-aside > p:not(.service-directory-label) { color: #d1dce3; margin: 1.3rem 0 2rem; max-width: 25rem; font-size: .92rem; } .service-directory-aside .inline-arrow { color: var(--gold); margin-top: auto; } .service-list { display: grid; grid-template-columns: repeat(2, 1fr); } .service-item { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); padding: 1.65rem 1.85rem; } .service-item:nth-last-child(-n+2) { border-bottom: 0; } .service-item h3 { font-family: var(--font-body); font-size: 1.08rem; font-weight: 700; margin-bottom: .55rem; } .service-item p { color: var(--ink-muted); font-size: .87rem; line-height: 1.75; } .home-events { background: var(--paper-cool); } .home-event-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; } .home-event-story figure { overflow: hidden; aspect-ratio: 16/10; background: #d9e1e1; } .home-event-story img { height: 100%; width: 100%; object-fit: cover; transition: transform .4s; } .home-event-story:hover img { transform: scale(1.03); } .home-event-meta { display: flex; justify-content: space-between; color: var(--blue); padding: 1rem 0 .35rem; border-top: 3px solid var(--navy); font-size: .75rem; font-weight: 700; letter-spacing: .05em; } .home-event-story h3 { font-size: clamp(1.15rem, 1.7vw, 1.5rem); font-weight: 600; } .home-partners { border-top: 1px solid var(--line); } .partner-logo-row { display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); } .partner-logo-row img { height: 126px; width: 100%; object-fit: contain; padding: 1.1rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); } .home-flyers { background: var(--paper-warm); border-top: 1px solid var(--line); } .flyer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; max-width: 980px; margin-inline: auto; } .flyer-link { display: block; min-width: 0; background: var(--paper); border: 1px solid var(--line); color: var(--navy); } .flyer-link:hover, .flyer-link:focus-visible { border-color: var(--navy); } .flyer-link figure { height: 530px; display: flex; align-items: center; justify-content: center; padding: 1rem; overflow: hidden; } .flyer-link img { width: auto; height: 100%; max-height: 100%; object-fit: contain; } .flyer-caption { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.25rem; border-top: 1px solid var(--line); font-size: .82rem; } .flyer-caption span:first-child { color: var(--red); font-weight: 700; } .flyer-caption strong { flex: 1; font-weight: 700; } .flyer-caption span:last-child { color: var(--blue); font-size: 1.05rem; } .home-close, .partnership-section { background: var(--navy); color: #fff; } .home-close { padding: clamp(4.5rem, 7vw, 7rem) 0; } .home-close-grid { display: grid; grid-template-columns: 1.65fr 1fr; gap: clamp(3rem, 7vw, 7rem); } .home-close h2, .partnership-section h2 { color: #fff; font-size: clamp(2rem, 3.3vw, 3.5rem); font-weight: 600; line-height: 1.3; margin: .7rem 0 1.2rem; } .home-close p:not(.section-index), .partnership-section p:not(.section-index) { color: #d4e0e5; } .home-close .section-index, .partnership-section .section-index { color: var(--gold); } .home-close-primary > p:not(.section-index) { max-width: 38rem; margin-bottom: 2rem; } .home-close-secondary { border-left: 1px solid rgba(255,255,255,.25); padding-left: clamp(2rem, 4vw, 4rem); } .home-close-secondary h3 { color: #fff; font-size: 1.2rem; margin-bottom: .6rem; } .home-close-secondary p { font-size: .9rem; margin-bottom: 1rem; } .home-close-secondary .inline-arrow { color: var(--gold); } .home-close-rule { height: 1px; background: rgba(255,255,255,.2); margin: 2rem 0; } .page-hero { background: var(--navy); padding: 3.6rem 0 4.1rem; border-bottom: 0; } .page-hero::after { display: none; } .page-hero .breadcrumb, .page-hero .breadcrumb a { color: #c8d6de; } .page-hero .eyebrow { color: var(--gold); } #donor-information.page-hero {scroll-margin-top:var(--header-h);} #donor-information.page-hero .eyebrow {text-transform:none;letter-spacing:.04em;} .page-hero h1 { color: #fff; font-size: clamp(2.25rem, 3.6vw, 3.8rem); font-weight: 600; margin: .6rem 0 .8rem; letter-spacing: -.03em; } .page-hero p:not(.eyebrow) { color: #d5e0e5; max-width: 50rem; } .team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; max-width: none; border-left: 1px solid var(--line); border-top: 1px solid var(--line); } .team-card { border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; padding: 0 1.5rem 2rem; text-align: left; background: transparent; transition: none; } .team-card:hover { transform: none; box-shadow: none; } .team-avatar, .team-card-featured .team-avatar { height: auto; width: calc(100% + 3rem); aspect-ratio: 1.25; margin: 0 -1.5rem 1.35rem; border-radius: 0; box-shadow: none; } .team-avatar::after { display: none; } .team-avatar img { object-position: center 22%; } .team-avatar .team-photo-cherry { object-position: center 20%; } .team-card h3 { font-size: 1.32rem; margin-bottom: .2rem; } .team-card p { font-size: .86rem; line-height: 1.75; } .team-role, .team-card-featured .team-role { color: var(--red); font-size: .75rem !important; letter-spacing: .04em; text-transform: uppercase; margin-bottom: .9rem; } .team-card-featured { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 2fr); gap: 2.3rem; padding: 0 2.3rem 0 1.5rem; } .team-card-featured .team-avatar { width: calc(100% + 1.5rem); height: 360px; min-height: 0; align-self: start; margin: 0 0 0 -1.5rem; aspect-ratio: auto; } .team-card-featured .team-photo-esther { object-position: center 32%; } .team-profile-content { padding: 2rem 0; } .team-profile-content p:last-child { max-width: 63rem; } .team-profile-content > .mt-2 a { color: var(--blue); font-weight: 600; } .team-summary { max-width: 43rem; font-size: .96rem !important; color: var(--ink) !important; } .team-background { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--line); max-width: 55rem; } .team-background summary { color: var(--blue); font-size: .82rem; font-weight: 700; cursor: pointer; width: fit-content; } .team-background summary:hover { color: var(--red); } .team-background p { margin-top: 1rem; } .team-background p + p { margin-top: .8rem; } .bg-cool { background: var(--paper-warm); } .past-event { border-radius: 0; box-shadow: none; border: 1px solid var(--line); margin-bottom: 3rem; } .past-event-hero { grid-template-columns: 1fr 1fr; } .past-event-body { padding: clamp(1.5rem, 3vw, 3rem); } .past-event-body h2 { font-size: clamp(1.45rem, 2.1vw, 2.1rem); } .past-event-sponsor { border-radius: 0; background: var(--paper-warm); } .past-event-sponsor img, .event-gallery a, .event-recog figure { border-radius: 0; } .event-gallery { gap: .35rem; } .event-gallery a { border: 0; } .event-gallery a:hover { transform: none; box-shadow: none; opacity: .88; } .past-event:first-of-type .event-gallery a.wide { grid-column: span 1; aspect-ratio: 1; } .event-video-section { padding: 2.4rem 1.5rem 2rem; border-top: 1px solid var(--line); background: var(--paper-warm); } .event-video-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 1.4rem; } .event-video-heading h3 { font-size: clamp(1.45rem, 2vw, 2rem); margin: .25rem 0 0; } .event-video-heading > p { max-width: 30rem; color: var(--ink-muted); font-size: .88rem; } .event-video-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } .event-video-card { min-width: 0; background: var(--paper); border: 1px solid var(--line); border-top: 2px solid var(--navy); } .event-video-card video { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; background: #071827; object-fit: contain; } .event-video-card figcaption { display: flex; align-items: baseline; gap: .75rem; padding: .85rem 1rem 1rem; } .event-video-card figcaption span { color: var(--red); font-size: .69rem; font-weight: 700; letter-spacing: .06em; white-space: nowrap; } .event-video-card figcaption h4 { font-family: var(--font-body); font-size: .92rem; font-weight: 700; } .program-header { margin: 5rem 0 1.6rem !important; } .program-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 2px solid var(--navy); } .program-item { display: grid; grid-template-columns: 2.2rem 1fr; gap: 1rem; padding: 1.8rem 1.5rem 1.8rem 0; border-bottom: 1px solid var(--line); } .program-item:nth-child(odd) { border-right: 1px solid var(--line); } .program-item:nth-child(even) { padding-left: 1.5rem; } .program-item > span { font: 700 .8rem var(--font-body); color: var(--red); } .program-item .eyebrow { margin-bottom: .4rem; font-size: .67rem; } .program-item h3 { font-size: 1.25rem; margin-bottom: .55rem; } .program-item p:last-child { color: var(--ink-muted); font-size: .88rem; } .program-contact { margin-top: 1.5rem; } .sponsors-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0; border-left: 1px solid var(--line); border-top: 1px solid var(--line); } .sponsor-card { border-radius: 0; border-top: 0; border-left: 0; min-height: 196px; padding: 1.45rem; transition: none; } .sponsor-card:hover { transform: none; box-shadow: none; border-color: var(--line); background: var(--paper-warm); } .sponsor-card img { max-height: 92px; } .sponsor-card .sponsor-name { color: var(--navy); } .partnership-section { scroll-margin-top: var(--header-h); } .partnership-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 6rem; } .partnership-grid > div:first-child > p:not(.section-index) { margin-bottom: 2rem; } .partnership-detail { border-left: 1px solid rgba(255,255,255,.25); padding-left: clamp(2rem, 4vw, 4rem); } .partnership-detail h3 { color: #fff; font-size: 1.3rem; margin-bottom: 1.2rem; } .partnership-detail li { border-top: 1px solid rgba(255,255,255,.22); padding: .85rem 0; font-size: .93rem; } .partnership-detail p { margin-top: 1.1rem; font-size: .9rem; } .zelle-hero { background: var(--paper-warm); border: 1px solid var(--line); border-top: 2px solid var(--navy); border-radius: 0; box-shadow: none; } .zelle-hero::before { display: none; } .zelle-steps .num { border-radius: 0; background: var(--navy); } .zelle-note { border-radius: 0; background: #e9e4d8; border-left-color: var(--gold); } .zelle-qr-card { border-radius: 0; box-shadow: none; border: 1px solid var(--line); } .zelle-qr-card img { border-radius: 0; } .donate-amount { border-radius: 0; } .donate-option-heading { font-size: clamp(1.5rem, 2.2vw, 2.1rem) !important; } .donate-amount:hover, .donate-amount.selected { background: var(--paper-warm); color: var(--navy); border-color: var(--navy); box-shadow: none; } .donate-impact { border-radius: 0; background: transparent; padding: 1.7rem 0; border-left: 0; border-right: 0; } .impact-item { border-top: 1px solid var(--line); padding-top: 1rem; align-items: center; } .impact-item .amount { width: 7rem; min-height: 2.2rem; height: auto; text-align: center; border-radius: 0; background: var(--paper-warm); color: var(--navy); padding: .3rem; font-size: .75rem; } .impact-item p { padding-top: 0; } .donate-form-card, .contact-info-card { border-radius: 0; background: var(--navy); } .contact-info-card::after { display: none; } .contact-form-wrap { border-radius: 0; box-shadow: none; border: 1px solid var(--line); } .map-placeholder { border-radius: 0; } .form-group input, .form-group textarea, .form-group select { border-radius: 0; } .site-footer { background: #092037; padding-top: 4rem; } .footer-bottom {color:#bdcbd5;} .footer-col h2 {color:#fff;font-family:var(--font-body);font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.1rem;} .footer-brand .logo img { border-radius: 0; background: transparent; padding: 0; } .footer-col a:hover { color: var(--gold); } .reveal { transform: translateY(12px); transition-duration: .45s; } .toast { border-radius: 2px; } @media (max-width: 1120px) and (min-width: 961px) { .logo-text span { display: none; } .logo-text strong { font-size: .84rem; } .nav a { padding-inline: .4rem; } } @media (max-width: 960px) { :root { --header-h: 72px; } .site-header .logo-text span { display: none; } .nav { background: var(--paper); } .nav a { border-radius: 0; font-size: 1.375rem; padding: 1rem .5rem; } .nav a:hover, .nav a.active { color: var(--red); background: transparent; } .nav a.active::after { display: none; } .home-intro-grid { grid-template-columns: 1fr 3fr; } .home-intro .inline-arrow { grid-column: 2; justify-self: start; } .service-directory { grid-template-columns: 1fr; } .service-directory-aside { min-height: 260px; } .partner-logo-row { grid-template-columns: repeat(3, 1fr); } .event-video-heading { display: block; } .event-video-heading > p { margin-top: .65rem; } .event-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .team-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .sponsors-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } } @media (max-width: 700px) { :root { --header-h: 64px; } .container { width: min(100% - 2.5rem, var(--container)); } .logo img { width: 42px; height: 42px; } .logo-text strong { font-size: .83rem; } .civic-hero { grid-template-columns: 1fr; } .civic-hero-copy { padding: 4.25rem 1.5rem 4.5rem; } .civic-hero-inner { margin-left: 0; } .civic-hero h1 { font-size: clamp(2.6rem, 10vw, 4rem); } .civic-hero-image { aspect-ratio: 1.35; } .civic-hero-image img { min-height: 0; } .home-route-rail { grid-template-columns: 1fr; } .home-route-rail a { border-right: 0; border-bottom: 1px solid var(--line); padding: .85rem 1.5rem; } .home-intro-grid, .section-heading-row, .home-close-grid, .partnership-grid { display: block; } .home-intro .inline-arrow { margin-top: 1.5rem; } .section-heading-row .section-lead, .section-heading-row .inline-arrow { margin-top: 1rem; } .service-list { grid-template-columns: 1fr; } .service-item { padding: 1.35rem; border-right: 0; } .service-item:nth-last-child(2) { border-bottom: 1px solid var(--line); } .home-event-grid { grid-template-columns: 1fr; gap: 2.5rem; } .partner-logo-row { grid-template-columns: repeat(2, 1fr); } .partner-logo-row img { height: 104px; } .flyer-grid { grid-template-columns: 1fr; gap: 1.4rem; } .flyer-link figure { height: min(132vw, 570px); } .event-video-section { padding: 1.5rem 1rem; } .event-video-grid { grid-template-columns: 1fr; } .home-close-secondary, .partnership-detail { border-left: 0; border-top: 1px solid rgba(255,255,255,.25); padding: 2rem 0 0; margin-top: 3rem; } .page-hero { padding: 2.5rem 0 3rem; } .team-grid { grid-template-columns: 1fr; } .team-card-featured { grid-template-columns: 1fr; gap: 0; padding: 0 1.5rem 1.8rem; } .team-card-featured .team-avatar { width: calc(100% + 3rem); height: auto; min-height: 0; aspect-ratio: 1.25; margin: 0 -1.5rem 1.35rem; } .team-profile-content { padding: 0; } .past-event-hero, .program-grid { grid-template-columns: 1fr; } .past-event-poster img { min-height: 230px; } .program-item:nth-child(odd) { border-right: 0; } .program-item:nth-child(even) { padding-left: 0; } .sponsors-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .sponsor-card { min-height: 160px; padding: 1rem .65rem; } .sponsor-card img { max-height: 70px; } .footer-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 380px) { .logo-text strong { font-size: .72rem; } .partner-logo-row img { height: 90px; } } @media (prefers-reduced-motion: reduce) { .home-event-story img { transition: none; } } .dance-announcement { background: var(--paper-warm); border-bottom: 1px solid var(--line); } .dance-announcement-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 1.6rem; } .dance-announcement h2 { font: 700 1.1rem/1.5 var(--font-body); margin: 0 0 .3rem; } .dance-announcement p { color: var(--ink-muted); font-size: .85rem; margin: 0; } .dance-announcement .inline-arrow { flex-shrink: 0; } .dance-section { padding: clamp(3rem, 6vw, 5rem) 0; background: var(--paper-warm); border-bottom: 1px solid var(--line); scroll-margin-top: calc(var(--header-h) + 1rem); } .dance-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 360px); gap: clamp(2rem, 6vw, 6rem); align-items: start; } .dance-copy h2 { font-size: clamp(2rem, 3.2vw, 3.2rem); line-height: 1.15; margin: .75rem 0 1.3rem; letter-spacing: -.03em; } html[lang="zh-CN"] .dance-copy h2 { letter-spacing: 0; } .dance-intro { color: var(--ink-muted); max-width: 40rem; line-height: 1.85; margin-bottom: 1.75rem; } .dance-facts { display: grid; grid-template-columns: 1.25fr 1fr; border-top: 1px solid var(--line-strong); margin: 0 0 1.75rem; } .dance-facts > div { padding: 1rem 1rem 1rem 0; border-bottom: 1px solid var(--line); } .dance-facts dt { color: var(--ink-muted); font-size: .74rem; margin-bottom: .4rem; } .dance-facts dd { margin: 0; color: var(--navy); font-size: .95rem; font-weight: 600; line-height: 1.65; } .dance-copy h3 { font: 700 .95rem/1.5 var(--font-body); margin: 0 0 .5rem; } .dance-program { font-size: .9rem; line-height: 1.8; color: var(--ink-muted); margin-bottom: .8rem; } .dance-sponsor { font-size: .8rem; color: var(--ink-muted); } .dance-contact { display: flex; flex-wrap: wrap; gap: .5rem; border-top: 1px solid var(--line); padding-top: 1rem; margin: 1.5rem 0 0; font-size: .9rem; } .dance-contact a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: .2rem; } .dance-poster { display: block; color: var(--navy); background: var(--paper); border: 1px solid var(--line-strong); } .dance-poster figure { margin: 0; } .dance-poster img { display: block; width: 100%; height: auto; } .dance-poster figcaption { display: flex; justify-content: space-between; align-items: center; gap: .7rem; padding: .9rem 1rem; font-size: .8rem; font-weight: 600; } .dance-poster:hover { border-color: var(--navy); } @media (max-width: 760px) { .dance-announcement-inner { align-items: start; flex-direction: column; gap: 1rem; } .dance-layout { grid-template-columns: 1fr; } .dance-poster { width: min(100%, 360px); justify-self: center; } } @media (max-width: 400px) { .dance-facts { grid-template-columns: 1fr; } } .donor-information {padding:2rem 0 2.25rem;margin:0 0 3rem;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--header-h) + 1.5rem);} .donor-information h2 {font-size:clamp(1.35rem,2vw,1.65rem);margin:0 0 .8rem;} .donor-information p {max-width:65ch;line-height:1.75;margin:0;color:var(--ink-muted);} .donor-information .donor-acknowledgment {font-size:.9rem;margin-top:1rem;} .donor-information a {color:var(--navy);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px;overflow-wrap:anywhere;} .donor-information a:hover {color:var(--red);} .footer-bottom .footer-legal {color:#bdcbd5;font-weight:400;text-decoration:underline;text-underline-offset:.2em;} .footer-bottom .footer-legal:hover {color:var(--gold);} .footer-legal:focus-visible,.donor-information a:focus-visible {outline:2px solid var(--gold);outline-offset:4px;} @media(max-width:800px) {.donor-information {padding-top:1rem;margin-bottom:2rem;}} .lang-toggle a {color:var(--navy);padding:.45rem .53rem;font-size:.76rem;line-height:1.5;} .lang-toggle a+a {border-left:1px solid var(--line-strong);} .lang-toggle a.active {color:var(--red);text-decoration:underline;text-underline-offset:.3rem;} 