| :root { |
| --bg: #fffcfd; |
| --bg-soft: #fff5f8; |
| --surface: #ffffff; |
| --surface-2: #fbf0f4; |
| --text: #191218; |
| --text-soft: #655b63; |
| --border: #ead9df; |
| --brand: #bf5276; |
| --brand-2: #d97498; |
| --accent: #84354e; |
| --ring: rgba(191, 82, 118, 0.28); |
| --shadow: 0 14px 36px rgba(93, 45, 61, 0.08); |
| --shadow-lg: 0 22px 48px rgba(93, 45, 61, 0.12); |
| --nav-h: 72px; |
| --figure-max: 880px; |
| --ease-out: cubic-bezier(0.22, 1, 0.36, 1); |
| } |
|
|
| *, |
| *::before, |
| *::after { |
| box-sizing: border-box; |
| } |
|
|
| html { |
| scroll-behavior: smooth; |
| scroll-snap-type: y proximity; |
| scroll-padding-top: var(--nav-h); |
| } |
|
|
| body { |
| margin: 0; |
| font-family: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; |
| color: var(--text); |
| background-color: #fff9fb; |
| min-height: 100vh; |
| } |
|
|
| a { |
| color: inherit; |
| } |
|
|
| img { |
| max-width: 100%; |
| display: block; |
| } |
|
|
| .sr-only { |
| position: absolute; |
| width: 1px; |
| height: 1px; |
| padding: 0; |
| margin: -1px; |
| overflow: hidden; |
| clip: rect(0, 0, 0, 0); |
| border: 0; |
| } |
|
|
| .page-shell { |
| position: relative; |
| width: 100%; |
| overflow-x: hidden; |
| isolation: isolate; |
| } |
|
|
| #main-content { |
| width: 100%; |
| position: relative; |
| z-index: 1; |
| } |
|
|
| |
| .ambient-bg { |
| position: fixed; |
| inset: 0; |
| z-index: -3; |
| pointer-events: none; |
| overflow: hidden; |
| background: linear-gradient( |
| 165deg, |
| #fffcfd 0%, |
| #fff6f9 38%, |
| #fff0f5 68%, |
| #fffbfc 100% |
| ); |
| } |
|
|
| .ambient-orb { |
| position: absolute; |
| border-radius: 50%; |
| filter: blur(72px); |
| opacity: 0.55; |
| will-change: transform; |
| } |
|
|
| .ambient-orb--rose { |
| width: min(58vw, 520px); |
| height: min(58vw, 520px); |
| top: -12%; |
| left: -8%; |
| background: radial-gradient( |
| circle, |
| rgba(191, 82, 118, 0.42) 0%, |
| rgba(191, 82, 118, 0.12) 45%, |
| transparent 70% |
| ); |
| animation: orbDriftRose 22s ease-in-out infinite; |
| } |
|
|
| .ambient-orb--blush { |
| width: min(50vw, 460px); |
| height: min(50vw, 460px); |
| top: 8%; |
| right: -10%; |
| background: radial-gradient( |
| circle, |
| rgba(217, 116, 152, 0.38) 0%, |
| rgba(255, 182, 198, 0.14) 50%, |
| transparent 72% |
| ); |
| animation: orbDriftBlush 26s ease-in-out infinite; |
| } |
|
|
| .ambient-orb--pearl { |
| width: min(64vw, 580px); |
| height: min(64vw, 580px); |
| bottom: -18%; |
| left: 22%; |
| background: radial-gradient( |
| circle, |
| rgba(255, 220, 230, 0.5) 0%, |
| rgba(191, 82, 118, 0.1) 40%, |
| transparent 68% |
| ); |
| animation: orbDriftPearl 30s ease-in-out infinite; |
| } |
|
|
| .ambient-shimmer { |
| position: absolute; |
| inset: -20%; |
| background: conic-gradient( |
| from 200deg at 50% 45%, |
| transparent 0deg, |
| rgba(191, 82, 118, 0.06) 55deg, |
| transparent 110deg, |
| rgba(217, 116, 152, 0.05) 200deg, |
| transparent 280deg, |
| rgba(255, 200, 215, 0.04) 330deg, |
| transparent 360deg |
| ); |
| animation: shimmerRotate 48s linear infinite; |
| opacity: 0.9; |
| } |
|
|
| .page-shell::before { |
| content: ""; |
| position: fixed; |
| inset: 0; |
| pointer-events: none; |
| opacity: 0.2; |
| background-image: radial-gradient(circle, rgba(191, 82, 118, 0.11) 1px, transparent 1px); |
| background-size: 26px 26px; |
| z-index: -2; |
| animation: gridPulse 8s ease-in-out infinite; |
| } |
|
|
| .page-shell::after { |
| content: ""; |
| position: fixed; |
| inset: 0; |
| pointer-events: none; |
| z-index: -1; |
| background: |
| radial-gradient(ellipse 120% 80% at 50% 0%, rgba(255, 255, 255, 0.55), transparent 55%), |
| radial-gradient(ellipse 90% 60% at 50% 100%, rgba(191, 82, 118, 0.06), transparent 50%); |
| } |
|
|
| @keyframes orbDriftRose { |
| 0%, |
| 100% { |
| transform: translate(0, 0) scale(1); |
| } |
| 33% { |
| transform: translate(4%, 6%) scale(1.06); |
| } |
| 66% { |
| transform: translate(2%, 3%) scale(0.96); |
| } |
| } |
|
|
| @keyframes orbDriftBlush { |
| 0%, |
| 100% { |
| transform: translate(0, 0) scale(1); |
| } |
| 40% { |
| transform: translate(-5%, 4%) scale(1.08); |
| } |
| 70% { |
| transform: translate(-2%, 7%) scale(0.94); |
| } |
| } |
|
|
| @keyframes orbDriftPearl { |
| 0%, |
| 100% { |
| transform: translate(0, 0) scale(1); |
| } |
| 50% { |
| transform: translate(6%, -4%) scale(1.05); |
| } |
| } |
|
|
| @keyframes shimmerRotate { |
| from { |
| transform: rotate(0deg); |
| } |
| to { |
| transform: rotate(360deg); |
| } |
| } |
|
|
| @keyframes gridPulse { |
| 0%, |
| 100% { |
| opacity: 0.18; |
| } |
| 50% { |
| opacity: 0.24; |
| } |
| } |
|
|
| .container { |
| width: min(1120px, calc(100% - 2rem)); |
| margin: 0 auto; |
| } |
|
|
| |
| .scroll-progress { |
| position: fixed; |
| top: 0; |
| left: 0; |
| right: 0; |
| height: 3px; |
| z-index: 70; |
| pointer-events: none; |
| background: color-mix(in srgb, var(--border) 40%, transparent); |
| } |
|
|
| .scroll-progress__bar { |
| display: block; |
| height: 100%; |
| width: 0%; |
| background: linear-gradient(90deg, var(--accent), var(--brand), var(--brand-2)); |
| border-radius: 0 2px 2px 0; |
| transition: width 0.08s linear; |
| box-shadow: 0 0 12px color-mix(in srgb, var(--brand) 45%, transparent); |
| } |
|
|
| |
| .slide-dots { |
| position: fixed; |
| right: 14px; |
| top: 50%; |
| z-index: 55; |
| transform: translateY(-50%); |
| display: flex; |
| flex-direction: column; |
| gap: 0.45rem; |
| } |
|
|
| .slide-dots button { |
| position: relative; |
| width: 9px; |
| height: 9px; |
| padding: 0; |
| border: none; |
| border-radius: 50%; |
| background: color-mix(in srgb, var(--brand) 28%, var(--border)); |
| cursor: pointer; |
| transition: transform 0.25s var(--ease-out), background 0.25s ease, box-shadow 0.25s ease; |
| } |
|
|
| .slide-dots button::after { |
| content: attr(data-label); |
| position: absolute; |
| right: calc(100% + 10px); |
| top: 50%; |
| transform: translateY(-50%) translateX(6px); |
| padding: 0.28rem 0.55rem; |
| border-radius: 0.4rem; |
| background: var(--text); |
| color: #fff; |
| font-size: 0.68rem; |
| font-weight: 600; |
| white-space: nowrap; |
| opacity: 0; |
| pointer-events: none; |
| transition: opacity 0.2s ease, transform 0.2s var(--ease-out); |
| } |
|
|
| .slide-dots button:hover::after, |
| .slide-dots button:focus-visible::after { |
| opacity: 1; |
| transform: translateY(-50%) translateX(0); |
| } |
|
|
| .slide-dots button:hover { |
| transform: scale(1.2); |
| background: color-mix(in srgb, var(--brand) 55%, var(--border)); |
| } |
|
|
| .slide-dots button.is-active { |
| transform: scale(1.35); |
| background: var(--brand); |
| box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 25%, transparent); |
| } |
|
|
| |
| .back-top { |
| position: fixed; |
| right: 1.1rem; |
| bottom: 1.25rem; |
| z-index: 56; |
| width: 2.6rem; |
| height: 2.6rem; |
| border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--border)); |
| border-radius: 50%; |
| background: color-mix(in srgb, var(--surface) 88%, transparent); |
| backdrop-filter: blur(10px); |
| color: var(--accent); |
| cursor: pointer; |
| box-shadow: var(--shadow); |
| display: grid; |
| place-items: center; |
| transition: transform 0.25s var(--ease-out), opacity 0.25s ease, border-color 0.2s ease; |
| opacity: 0; |
| pointer-events: none; |
| } |
|
|
| .back-top.is-visible { |
| opacity: 1; |
| pointer-events: auto; |
| } |
|
|
| .back-top:hover { |
| transform: translateY(-3px); |
| border-color: var(--brand); |
| } |
|
|
| |
| .reveal { |
| opacity: 0; |
| transform: translateY(28px); |
| transition: opacity 0.65s var(--ease-out), transform 0.65s var(--ease-out); |
| } |
|
|
| .reveal.is-visible { |
| opacity: 1; |
| transform: translateY(0); |
| } |
|
|
| .reveal .card, |
| .reveal .section-figure, |
| .reveal .qual-viewer { |
| transition-delay: 0.05s; |
| } |
|
|
| |
| .top-nav { |
| position: sticky; |
| top: 0; |
| z-index: 60; |
| border-bottom: 1px solid color-mix(in srgb, var(--border) 65%, transparent); |
| background: color-mix(in srgb, var(--surface) 72%, transparent); |
| backdrop-filter: blur(16px) saturate(1.15); |
| -webkit-backdrop-filter: blur(16px) saturate(1.15); |
| transition: box-shadow 0.3s ease, background 0.3s ease; |
| } |
|
|
| .top-nav.is-scrolled { |
| box-shadow: 0 8px 24px rgba(93, 45, 61, 0.06); |
| background: color-mix(in srgb, var(--surface) 92%, transparent); |
| } |
|
|
| .top-nav__inner { |
| min-height: var(--nav-h); |
| display: grid; |
| grid-template-columns: auto minmax(0, 1fr) auto; |
| align-items: center; |
| gap: 0.65rem; |
| } |
|
|
| .brand { |
| display: inline-flex; |
| align-items: center; |
| gap: 0.55rem; |
| text-decoration: none; |
| font-family: "Space Grotesk", sans-serif; |
| font-weight: 700; |
| font-size: 1.04rem; |
| flex-shrink: 0; |
| } |
|
|
| .brand:hover { |
| text-decoration: none; |
| } |
|
|
| .brand-name { |
| color: var(--text); |
| } |
|
|
| .brand-team { |
| padding: 0.2rem 0.55rem; |
| border-radius: 999px; |
| font-size: 0.68rem; |
| font-weight: 600; |
| color: var(--accent); |
| background: color-mix(in srgb, var(--brand) 12%, var(--surface)); |
| border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--border)); |
| } |
|
|
| .nav-links { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 0.3rem; |
| flex-wrap: nowrap; |
| min-width: 0; |
| } |
|
|
| .nav-link { |
| text-decoration: none; |
| color: var(--text-soft); |
| font-size: 0.8rem; |
| font-weight: 500; |
| padding: 0.35rem 0.38rem; |
| white-space: nowrap; |
| border-radius: 0.45rem; |
| transition: color 0.2s ease, background 0.2s ease; |
| } |
|
|
| .nav-link:hover, |
| .nav-link.is-active { |
| color: var(--accent); |
| background: color-mix(in srgb, var(--brand) 10%, transparent); |
| text-decoration: none; |
| } |
|
|
| .nav-actions { |
| display: inline-flex; |
| align-items: center; |
| gap: 0.55rem; |
| flex-shrink: 0; |
| } |
|
|
| .action-btn { |
| border: 1px solid var(--border); |
| background: var(--surface-2); |
| color: var(--text); |
| border-radius: 0.6rem; |
| min-height: 2.2rem; |
| padding: 0.35rem 0.7rem; |
| font-size: 0.82rem; |
| font-weight: 600; |
| text-decoration: none; |
| cursor: pointer; |
| transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease; |
| } |
|
|
| .action-btn:hover { |
| transform: translateY(-1px); |
| border-color: color-mix(in srgb, var(--brand) 58%, var(--border)); |
| text-decoration: none; |
| } |
|
|
| .nav-toggle { |
| display: none; |
| flex-direction: column; |
| gap: 5px; |
| padding: 8px; |
| border: 1px solid var(--border); |
| border-radius: 0.5rem; |
| background: var(--surface); |
| cursor: pointer; |
| } |
|
|
| .nav-toggle span { |
| display: block; |
| width: 20px; |
| height: 2px; |
| background: var(--text); |
| border-radius: 2px; |
| } |
|
|
| .nav-mobile { |
| display: none; |
| flex-direction: column; |
| gap: 0.25rem; |
| padding: 0 0 1rem; |
| border-top: 1px solid var(--border); |
| background: color-mix(in srgb, var(--surface) 95%, transparent); |
| } |
|
|
| .top-nav.is-open .nav-mobile { |
| display: flex; |
| } |
|
|
| .nav-mobile .nav-link { |
| padding: 0.55rem 0.65rem; |
| } |
|
|
| |
| .section { |
| position: relative; |
| padding: 4.5rem 0; |
| scroll-margin-top: var(--nav-h); |
| scroll-snap-align: start; |
| } |
|
|
| #main-content > .section + .section::before { |
| content: ""; |
| position: absolute; |
| top: 0; |
| left: 50%; |
| transform: translateX(-50%); |
| width: min(1120px, calc(100% - 2rem)); |
| height: 1px; |
| background: linear-gradient( |
| 90deg, |
| transparent 0%, |
| color-mix(in srgb, var(--brand) 18%, var(--border)) 18%, |
| color-mix(in srgb, var(--brand) 18%, var(--border)) 82%, |
| transparent 100% |
| ); |
| opacity: 0.85; |
| } |
|
|
| #main-content > .section:nth-of-type(even) { |
| background: linear-gradient( |
| 180deg, |
| color-mix(in srgb, var(--surface) 55%, transparent) 0%, |
| color-mix(in srgb, var(--surface-2) 28%, transparent) 100% |
| ); |
| backdrop-filter: blur(2px); |
| } |
|
|
| .section--center .container { |
| text-align: center; |
| } |
|
|
| .section--center .section-lead { |
| margin-inline: auto; |
| } |
|
|
| .section--center .feature-grid { |
| text-align: left; |
| } |
|
|
| .section--center .bullet-list { |
| display: inline-block; |
| text-align: left; |
| } |
|
|
| .section--center .qual-viewer, |
| .section--center .section-figure { |
| margin-inline: auto; |
| } |
|
|
| .section--compact { |
| padding-top: 3.5rem; |
| padding-bottom: 3.5rem; |
| } |
|
|
|
|
| .section-kicker { |
| margin: 0 0 0.5rem; |
| font-size: 0.72rem; |
| font-weight: 600; |
| letter-spacing: 0.1em; |
| text-transform: uppercase; |
| color: var(--brand); |
| } |
|
|
| .section-title { |
| margin: 0; |
| font-family: "Space Grotesk", sans-serif; |
| font-size: clamp(1.6rem, 4vw, 2.35rem); |
| line-height: 1.1; |
| letter-spacing: -0.02em; |
| } |
|
|
| .section-lead { |
| margin-top: 0.8rem; |
| color: var(--text-soft); |
| line-height: 1.7; |
| max-width: 70ch; |
| } |
|
|
| |
| .hero { |
| display: grid; |
| grid-template-columns: 1.08fr 0.92fr; |
| gap: 2.2rem; |
| align-items: center; |
| } |
|
|
| .hero--single { |
| grid-template-columns: 1fr; |
| } |
|
|
| .hero-badge { |
| display: inline-flex; |
| align-items: center; |
| padding: 0.35rem 0.72rem; |
| border-radius: 999px; |
| border: 1px solid color-mix(in srgb, var(--brand) 58%, transparent); |
| background: color-mix(in srgb, var(--brand) 10%, var(--surface)); |
| font-size: 0.74rem; |
| font-weight: 600; |
| letter-spacing: 0.04em; |
| text-transform: uppercase; |
| color: color-mix(in srgb, var(--brand) 85%, var(--text)); |
| } |
|
|
| .hero-title { |
| margin-top: 1.15rem; |
| margin-bottom: 0.95rem; |
| font-family: "Space Grotesk", sans-serif; |
| font-size: clamp(2rem, 5vw, 3.3rem); |
| line-height: 1.06; |
| letter-spacing: -0.02em; |
| } |
|
|
| .hero-highlight { |
| background: linear-gradient(120deg, var(--accent), var(--brand), var(--brand-2)); |
| -webkit-background-clip: text; |
| background-clip: text; |
| -webkit-text-fill-color: transparent; |
| } |
|
|
| .hero-subtitle { |
| margin: 0; |
| color: var(--text-soft); |
| font-size: 1.07rem; |
| line-height: 1.7; |
| max-width: 52ch; |
| } |
|
|
| .hero-cta-group { |
| margin-top: 1.45rem; |
| display: flex; |
| flex-wrap: wrap; |
| gap: 0.75rem; |
| } |
|
|
| .cta { |
| text-decoration: none; |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| gap: 0.45rem; |
| border-radius: 0.8rem; |
| border: 1px solid transparent; |
| min-height: 2.8rem; |
| padding: 0.55rem 1rem; |
| font-weight: 700; |
| font-size: 0.94rem; |
| transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; |
| } |
|
|
| .cta:hover { |
| transform: translateY(-1px); |
| text-decoration: none; |
| } |
|
|
| .cta--primary { |
| background: linear-gradient(128deg, var(--brand), var(--brand-2)); |
| color: #fff; |
| box-shadow: 0 16px 30px color-mix(in srgb, var(--brand) 34%, transparent); |
| } |
|
|
| .cta--primary:hover { |
| box-shadow: 0 20px 36px color-mix(in srgb, var(--brand) 42%, transparent); |
| } |
|
|
| .cta--secondary { |
| background: var(--surface); |
| border-color: var(--border); |
| color: var(--accent); |
| } |
|
|
| .metrics-grid { |
| margin-top: 1.6rem; |
| display: grid; |
| gap: 0.85rem; |
| grid-template-columns: repeat(3, minmax(0, 1fr)); |
| max-width: 640px; |
| } |
|
|
| .metrics-grid--duo { |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| max-width: 420px; |
| } |
|
|
| .hero-note { |
| margin: 1.25rem 0 0; |
| max-width: 52ch; |
| font-size: 0.92rem; |
| line-height: 1.65; |
| color: var(--text-soft); |
| } |
|
|
| .section-lead a { |
| color: var(--accent); |
| font-weight: 600; |
| text-decoration: underline; |
| text-underline-offset: 2px; |
| } |
|
|
| .section-lead a:hover { |
| color: var(--brand); |
| } |
|
|
| .metric-card { |
| display: block; |
| padding: 0.9rem 1rem; |
| border: 1px solid var(--border); |
| border-radius: 0.95rem; |
| background: var(--surface); |
| box-shadow: var(--shadow); |
| text-decoration: none; |
| transition: transform 0.2s ease, border-color 0.2s ease; |
| } |
|
|
| .metric-card:hover { |
| transform: translateY(-2px); |
| border-color: color-mix(in srgb, var(--brand) 45%, var(--border)); |
| text-decoration: none; |
| } |
|
|
| .metric-label { |
| display: block; |
| color: var(--text-soft); |
| font-size: 0.8rem; |
| letter-spacing: 0.02em; |
| } |
|
|
| .metric-value { |
| margin-top: 0.25rem; |
| display: block; |
| font-family: "Space Grotesk", "IBM Plex Sans", sans-serif; |
| font-size: 1.45rem; |
| font-weight: 700; |
| color: var(--text); |
| } |
|
|
| .authors-fold { |
| margin-top: 1.5rem; |
| max-width: 52ch; |
| font-size: 0.875rem; |
| color: var(--text-soft); |
| } |
|
|
| .authors-fold summary { |
| cursor: pointer; |
| font-weight: 600; |
| color: var(--accent); |
| list-style: none; |
| } |
|
|
| .authors-fold summary::-webkit-details-marker { |
| display: none; |
| } |
|
|
| .authors { |
| margin: 0.75rem 0 0.35rem; |
| } |
|
|
| .affiliations { |
| margin: 0; |
| font-size: 0.82rem; |
| } |
|
|
| |
| .feature-grid { |
| margin-top: 1.35rem; |
| display: grid; |
| grid-template-columns: repeat(4, minmax(0, 1fr)); |
| gap: 0.95rem; |
| } |
|
|
| .feature-grid--three { |
| grid-template-columns: repeat(3, minmax(0, 1fr)); |
| } |
|
|
| .card { |
| border: 1px solid var(--border); |
| background: var(--surface); |
| border-radius: 1rem; |
| padding: 1.2rem; |
| box-shadow: var(--shadow); |
| transition: transform 0.28s var(--ease-out), border-color 0.28s ease, box-shadow 0.28s ease; |
| } |
|
|
| .card--accent { |
| position: relative; |
| overflow: hidden; |
| } |
|
|
| .card--accent::before { |
| content: ""; |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| height: 3px; |
| background: var(--card-accent, var(--brand)); |
| opacity: 0.85; |
| transition: height 0.25s ease; |
| } |
|
|
| .card--accent[data-accent="context"] { |
| --card-accent: #c45a7a; |
| } |
|
|
| .card--accent[data-accent="compression"] { |
| --card-accent: #a84d8f; |
| } |
|
|
| .card--accent[data-accent="spatial"] { |
| --card-accent: #84354e; |
| } |
|
|
| .card--accent[data-accent="ssm"] { |
| --card-accent: #d97498; |
| } |
|
|
| .card--accent:hover { |
| transform: translateY(-4px); |
| border-color: color-mix(in srgb, var(--card-accent) 45%, var(--border)); |
| box-shadow: 0 18px 40px color-mix(in srgb, var(--card-accent) 14%, transparent); |
| } |
|
|
| .card--accent:hover::before { |
| height: 4px; |
| } |
|
|
| .card-icon { |
| width: 2.1rem; |
| height: 2.1rem; |
| border-radius: 0.55rem; |
| display: grid; |
| place-items: center; |
| background: color-mix(in srgb, var(--card-accent, var(--brand)) 12%, var(--surface)); |
| color: var(--card-accent, var(--brand)); |
| } |
|
|
| .card-icon svg { |
| width: 1.15rem; |
| height: 1.15rem; |
| } |
|
|
| .card h3 { |
| margin: 0.75rem 0 0.55rem; |
| font-family: "Space Grotesk", sans-serif; |
| font-size: 1.1rem; |
| } |
|
|
| .card p { |
| margin: 0; |
| color: var(--text-soft); |
| line-height: 1.65; |
| font-size: 0.92rem; |
| } |
|
|
| .bullet-list { |
| margin: 1rem 0 1.25rem; |
| padding-left: 1.25rem; |
| color: var(--text-soft); |
| line-height: 1.65; |
| } |
|
|
| .bullet-list li { |
| margin-bottom: 0.4rem; |
| } |
|
|
| .section-figure { |
| margin: 1.5rem auto 0; |
| text-align: center; |
| max-width: var(--figure-max); |
| } |
|
|
| [data-zoomable] { |
| cursor: zoom-in; |
| } |
|
|
| .section-figure img { |
| width: 100%; |
| margin: 0 auto; |
| border: 1px solid var(--border); |
| border-radius: 1rem; |
| background: var(--surface); |
| box-shadow: var(--shadow); |
| transition: transform 0.35s var(--ease-out), box-shadow 0.35s ease; |
| } |
|
|
| [data-zoomable]:hover img { |
| transform: scale(1.012); |
| box-shadow: var(--shadow-lg); |
| } |
|
|
| .section-figure figcaption { |
| margin-top: 0.65rem; |
| font-size: 0.84rem; |
| color: var(--text-soft); |
| } |
|
|
| .zoom-hint { |
| display: inline-block; |
| margin-left: 0.35rem; |
| font-size: 0.75rem; |
| color: color-mix(in srgb, var(--brand) 70%, var(--text-soft)); |
| opacity: 0; |
| transition: opacity 0.2s ease; |
| } |
|
|
| [data-zoomable]:hover .zoom-hint { |
| opacity: 1; |
| } |
|
|
| |
| .qual-viewer { |
| margin-top: 1.25rem; |
| max-width: var(--figure-max); |
| margin-inline: auto; |
| } |
|
|
| .qual-stage { |
| margin: 0 0 0.85rem; |
| padding: 0.85rem; |
| border: 1px solid var(--border); |
| border-radius: 1rem; |
| background: var(--surface); |
| box-shadow: var(--shadow); |
| } |
|
|
| .qual-stage__media { |
| position: relative; |
| overflow: hidden; |
| border-radius: 0.65rem; |
| aspect-ratio: 16 / 9; |
| background: color-mix(in srgb, var(--surface-2) 60%, var(--surface)); |
| } |
|
|
| .qual-stage img { |
| width: 100%; |
| height: 100%; |
| object-fit: contain; |
| border-radius: 0.65rem; |
| transition: opacity 0.35s ease, transform 0.35s var(--ease-out); |
| } |
|
|
| .qual-stage img.is-fading { |
| opacity: 0; |
| transform: scale(0.985); |
| } |
|
|
| .qual-stage figcaption { |
| margin-top: 0.55rem; |
| font-size: 0.84rem; |
| color: var(--text-soft); |
| text-align: center; |
| } |
|
|
| .qual-chips { |
| display: flex; |
| flex-wrap: wrap; |
| justify-content: center; |
| gap: 0.5rem; |
| } |
|
|
| .qual-chip { |
| border: 1px solid var(--border); |
| border-radius: 999px; |
| padding: 0.45rem 0.85rem; |
| background: var(--surface); |
| font-size: 0.82rem; |
| font-weight: 600; |
| color: var(--text-soft); |
| cursor: pointer; |
| transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease; |
| } |
|
|
| .qual-chip.is-active, |
| .qual-chip:hover { |
| color: #fff; |
| background: var(--brand); |
| border-color: var(--brand); |
| } |
|
|
| .qual-chip { |
| transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s var(--ease-out); |
| } |
|
|
| .qual-chip:active { |
| transform: scale(0.97); |
| } |
|
|
| .demo-grid { |
| margin: 1.3rem auto 0; |
| max-width: 980px; |
| display: grid; |
| grid-template-columns: repeat(6, minmax(0, 1fr)); |
| gap: 0.75rem; |
| } |
|
|
| .demo-grid__label { |
| grid-column: 1 / -1; |
| margin: 0.35rem 0 -0.25rem; |
| font-family: "Space Grotesk", sans-serif; |
| font-size: 0.95rem; |
| color: var(--text); |
| text-align: left; |
| } |
|
|
| .demo-grid figure { |
| margin: 0; |
| padding: 0.55rem; |
| border: 1px solid var(--border); |
| border-radius: 0.9rem; |
| background: var(--surface); |
| box-shadow: var(--shadow); |
| } |
|
|
| .demo-grid img { |
| width: 100%; |
| aspect-ratio: 16 / 9; |
| object-fit: cover; |
| border-radius: 0.55rem; |
| background: var(--surface-2); |
| } |
|
|
| .demo-grid figcaption { |
| margin-top: 0.45rem; |
| text-align: center; |
| color: var(--text-soft); |
| font-size: 0.76rem; |
| font-weight: 700; |
| } |
|
|
| |
| .lightbox { |
| position: fixed; |
| inset: 0; |
| z-index: 100; |
| display: grid; |
| place-items: center; |
| padding: 1.5rem; |
| background: rgba(25, 18, 24, 0.72); |
| backdrop-filter: blur(8px); |
| animation: lightboxIn 0.25s ease; |
| } |
|
|
| .lightbox[hidden] { |
| display: none; |
| } |
|
|
| .lightbox__close { |
| position: absolute; |
| top: 1rem; |
| right: 1rem; |
| width: 2.5rem; |
| height: 2.5rem; |
| border: none; |
| border-radius: 50%; |
| background: rgba(255, 255, 255, 0.12); |
| color: #fff; |
| font-size: 1.5rem; |
| line-height: 1; |
| cursor: pointer; |
| transition: background 0.2s ease; |
| } |
|
|
| .lightbox__close:hover { |
| background: rgba(255, 255, 255, 0.22); |
| } |
|
|
| .lightbox__inner { |
| margin: 0; |
| max-width: min(1100px, 96vw); |
| max-height: 90vh; |
| } |
|
|
| .lightbox__inner img { |
| max-width: 100%; |
| max-height: calc(90vh - 3rem); |
| margin: 0 auto; |
| border-radius: 0.75rem; |
| box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35); |
| } |
|
|
| .lightbox__inner figcaption { |
| margin-top: 0.75rem; |
| text-align: center; |
| color: rgba(255, 255, 255, 0.82); |
| font-size: 0.9rem; |
| } |
|
|
| @keyframes lightboxIn { |
| from { |
| opacity: 0; |
| } |
| to { |
| opacity: 1; |
| } |
| } |
|
|
| |
| .updates-grid { |
| margin-top: 1.5rem; |
| display: grid; |
| grid-template-columns: 1fr 1fr minmax(220px, 0.85fr); |
| gap: 1.25rem; |
| align-items: start; |
| } |
|
|
| .community-panel .wechat-qr { |
| margin: 0.75rem 0 0; |
| } |
|
|
| .community-panel { |
| overflow: visible; |
| } |
|
|
| .wechat-qr { |
| margin: 0.75rem auto 0; |
| padding: 0; |
| text-align: center; |
| overflow: visible; |
| } |
|
|
| |
| .wechat-qr__photo { |
| display: block; |
| width: 220px; |
| max-width: 100%; |
| height: auto; |
| margin: 0 auto; |
| border-radius: 0.75rem; |
| border: 1px solid var(--border); |
| box-shadow: var(--shadow); |
| } |
|
|
| .developer-page .wechat-qr { |
| margin: 1rem auto 0; |
| overflow: visible; |
| } |
|
|
| .developer-page .wechat-qr__photo { |
| width: 260px; |
| } |
|
|
| .wechat-qr figcaption { |
| margin-top: 0.55rem; |
| font-size: 0.82rem; |
| color: var(--text-soft); |
| } |
|
|
| .lang-toggle { |
| border: 1px solid var(--border); |
| background: var(--surface); |
| color: var(--accent); |
| border-radius: 999px; |
| padding: 0.35rem 0.75rem; |
| font-size: 0.78rem; |
| font-weight: 600; |
| cursor: pointer; |
| font-family: inherit; |
| transition: background 0.2s ease, border-color 0.2s ease; |
| } |
|
|
| .lang-toggle:hover { |
| background: var(--surface-2); |
| border-color: var(--brand-2); |
| } |
|
|
| .action-btn--ghost { |
| background: transparent; |
| border: 1px solid var(--border); |
| color: var(--accent); |
| } |
|
|
| .action-btn--ghost:hover { |
| background: var(--surface-2); |
| } |
|
|
| .page-shell--doc { |
| min-height: 100vh; |
| } |
|
|
| .top-nav--doc { |
| position: sticky; |
| top: 0; |
| z-index: 20; |
| background: rgba(255, 252, 253, 0.92); |
| backdrop-filter: blur(10px); |
| border-bottom: 1px solid var(--border); |
| } |
|
|
| .dev-main { |
| padding: 2rem 1rem 3rem; |
| max-width: 52rem; |
| min-width: 0; |
| box-sizing: border-box; |
| } |
|
|
| .top-nav__inner--doc { |
| min-width: 0; |
| } |
|
|
| .action-btn--compact { |
| white-space: nowrap; |
| max-width: min(100%, 14rem); |
| overflow: hidden; |
| text-overflow: ellipsis; |
| } |
|
|
| @media (max-width: 640px) { |
| .top-nav__inner--doc { |
| gap: 0.45rem; |
| } |
|
|
| .action-btn--compact { |
| max-width: 9.5rem; |
| font-size: 0.74rem; |
| padding: 0.35rem 0.5rem; |
| } |
|
|
| .lang-toggle { |
| font-size: 0.72rem; |
| padding: 0.3rem 0.55rem; |
| } |
| } |
|
|
| .dev-section { |
| margin-top: 1rem; |
| padding: 1.15rem 1.25rem; |
| overflow: visible; |
| min-width: 0; |
| } |
|
|
| .dev-skills-title { |
| margin: 1rem 0 0.5rem; |
| font-weight: 600; |
| font-size: 0.92rem; |
| color: var(--accent); |
| } |
|
|
| .dev-section--accent { |
| border-color: color-mix(in srgb, var(--brand) 35%, var(--border)); |
| background: color-mix(in srgb, var(--brand) 4%, var(--surface)); |
| } |
|
|
| .dev-table-wrap { |
| overflow-x: auto; |
| max-width: 100%; |
| -webkit-overflow-scrolling: touch; |
| margin-top: 0.5rem; |
| } |
|
|
| .dev-table { |
| width: 100%; |
| min-width: 28rem; |
| border-collapse: collapse; |
| font-size: 0.84rem; |
| } |
|
|
| .dev-table th, |
| .dev-table td { |
| border: 1px solid var(--border); |
| padding: 0.45rem 0.55rem; |
| text-align: left; |
| vertical-align: top; |
| word-break: break-word; |
| } |
|
|
| .dev-table th { |
| background: var(--surface-2); |
| color: var(--accent); |
| font-weight: 600; |
| } |
|
|
| .dev-table code { |
| font-size: 0.82em; |
| word-break: break-all; |
| } |
|
|
| .dev-section .code-block { |
| max-width: 100%; |
| box-sizing: border-box; |
| } |
|
|
| .code-block--prompt { |
| font-size: 0.78rem; |
| line-height: 1.55; |
| white-space: pre-wrap; |
| overflow-wrap: anywhere; |
| word-break: break-word; |
| } |
|
|
| .dev-title { |
| font-family: "Space Grotesk", sans-serif; |
| font-size: clamp(1.75rem, 4vw, 2.35rem); |
| margin: 0 0 0.75rem; |
| color: var(--accent); |
| } |
|
|
| .dev-section h2 { |
| margin: 0 0 0.65rem; |
| font-family: "Space Grotesk", sans-serif; |
| font-size: 1.05rem; |
| color: var(--accent); |
| } |
|
|
| .dev-section p, |
| .dev-section li { |
| color: var(--text-soft); |
| line-height: 1.6; |
| } |
|
|
| .dev-repo-link { |
| margin-top: 1.5rem; |
| font-size: 0.9rem; |
| color: var(--text-soft); |
| } |
|
|
| .updates-panel { |
| border: 1px solid var(--border); |
| border-radius: 1rem; |
| background: var(--surface); |
| box-shadow: var(--shadow); |
| padding: 1.2rem 1.25rem; |
| } |
|
|
| .updates-heading { |
| margin: 0 0 0.85rem; |
| font-family: "Space Grotesk", sans-serif; |
| font-size: 1.05rem; |
| color: var(--accent); |
| } |
|
|
| .news-feed { |
| list-style: none; |
| margin: 0; |
| padding: 0; |
| display: grid; |
| gap: 0.9rem; |
| } |
|
|
| .news-item { |
| display: grid; |
| grid-template-columns: 5.5rem 1fr; |
| gap: 0.75rem; |
| padding-left: 0.65rem; |
| border-left: 2px solid color-mix(in srgb, var(--brand) 35%, var(--border)); |
| } |
|
|
| .news-item time { |
| font-size: 0.76rem; |
| font-weight: 600; |
| letter-spacing: 0.02em; |
| color: var(--brand); |
| white-space: nowrap; |
| } |
|
|
| .news-item p { |
| margin: 0; |
| font-size: 0.9rem; |
| line-height: 1.6; |
| color: var(--text-soft); |
| } |
|
|
| .news-item a { |
| color: var(--accent); |
| font-weight: 600; |
| text-decoration: underline; |
| text-underline-offset: 2px; |
| } |
|
|
| .news-item code { |
| font-family: "JetBrains Mono", monospace; |
| font-size: 0.78rem; |
| padding: 0.1rem 0.35rem; |
| border-radius: 0.35rem; |
| background: color-mix(in srgb, var(--brand) 8%, var(--surface-2)); |
| } |
|
|
| .todo-groups { |
| display: grid; |
| gap: 0.85rem; |
| } |
|
|
| .todo-group h4 { |
| margin: 0 0 0.45rem; |
| font-size: 0.82rem; |
| font-weight: 700; |
| letter-spacing: 0.04em; |
| text-transform: uppercase; |
| color: var(--text-soft); |
| } |
|
|
| .todo-list { |
| list-style: none; |
| margin: 0; |
| padding: 0; |
| display: grid; |
| gap: 0.4rem; |
| } |
|
|
| .todo-list li { |
| display: flex; |
| align-items: flex-start; |
| gap: 0.55rem; |
| font-size: 0.88rem; |
| line-height: 1.55; |
| color: var(--text-soft); |
| } |
|
|
| .todo-check { |
| flex-shrink: 0; |
| width: 0.95rem; |
| height: 0.95rem; |
| margin-top: 0.2rem; |
| border: 1.5px solid color-mix(in srgb, var(--brand) 55%, var(--border)); |
| border-radius: 0.22rem; |
| background: color-mix(in srgb, var(--brand) 6%, var(--surface)); |
| } |
|
|
| .todo-list li.is-done { |
| color: color-mix(in srgb, var(--text) 72%, var(--text-soft)); |
| } |
|
|
| .todo-check.is-done { |
| border-color: var(--brand); |
| background: var(--brand); |
| position: relative; |
| } |
|
|
| .todo-check.is-done::after { |
| content: ""; |
| position: absolute; |
| left: 0.18rem; |
| top: 0.12rem; |
| width: 0.35rem; |
| height: 0.55rem; |
| border: solid #fff; |
| border-width: 0 1.5px 1.5px 0; |
| transform: rotate(45deg); |
| } |
|
|
| |
| .pub-meta { |
| display: grid; |
| gap: 0.55rem; |
| margin: 1.25rem 0 1.75rem; |
| padding: 1rem 1.1rem; |
| border: 1px solid var(--border); |
| border-radius: 1rem; |
| background: color-mix(in srgb, var(--surface) 82%, transparent); |
| box-shadow: var(--shadow); |
| max-width: 36rem; |
| } |
|
|
| .pub-meta__row { |
| display: grid; |
| grid-template-columns: 7.5rem 1fr; |
| gap: 0.75rem; |
| align-items: baseline; |
| font-size: 0.9rem; |
| } |
|
|
| .pub-meta dt { |
| margin: 0; |
| font-weight: 600; |
| color: var(--text-soft); |
| } |
|
|
| .pub-meta dd { |
| margin: 0; |
| color: var(--text); |
| } |
|
|
| .pub-meta a { |
| color: var(--accent); |
| font-weight: 600; |
| text-decoration: underline; |
| text-underline-offset: 2px; |
| } |
|
|
| .bibtex-heading { |
| margin: 1.5rem 0 0.65rem; |
| font-family: "Space Grotesk", sans-serif; |
| font-size: 1rem; |
| font-weight: 600; |
| color: var(--text); |
| } |
|
|
| .cite-switcher { |
| margin-top: 1.25rem; |
| max-width: 52rem; |
| } |
|
|
| .cite-chips { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 0.5rem; |
| margin-bottom: 1rem; |
| } |
|
|
| .cite-chip { |
| border: 1px solid var(--border); |
| border-radius: 999px; |
| padding: 0.45rem 0.9rem; |
| background: var(--surface); |
| font-size: 0.82rem; |
| font-weight: 600; |
| color: var(--text-soft); |
| cursor: pointer; |
| transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease; |
| } |
|
|
| .cite-chip.is-active, |
| .cite-chip:hover { |
| color: #fff; |
| background: var(--brand); |
| border-color: var(--brand); |
| } |
|
|
| .cite-panel { |
| animation: citeFadeIn 0.25s ease; |
| } |
|
|
| @keyframes citeFadeIn { |
| from { |
| opacity: 0; |
| transform: translateY(6px); |
| } |
| to { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| } |
|
|
| .bibtex-wrap { |
| position: relative; |
| margin-top: 1rem; |
| width: 100%; |
| max-width: 52rem; |
| margin-inline: auto; |
| text-align: left; |
| } |
|
|
| .copy-btn { |
| position: absolute; |
| top: 0.75rem; |
| right: 0.75rem; |
| z-index: 1; |
| border: 1px solid var(--border); |
| background: var(--surface); |
| border-radius: 0.45rem; |
| padding: 0.25rem 0.55rem; |
| font-size: 0.75rem; |
| font-weight: 600; |
| color: var(--accent); |
| cursor: pointer; |
| transition: background 0.2s ease, color 0.2s ease; |
| } |
|
|
| .copy-btn:hover { |
| border-color: color-mix(in srgb, var(--brand) 50%, var(--border)); |
| } |
|
|
| .copy-btn.is-copied { |
| color: #fff; |
| background: var(--brand); |
| border-color: var(--brand); |
| } |
|
|
| .bibtex { |
| margin: 0; |
| padding: 1rem 1.1rem; |
| border: 1px solid var(--border); |
| border-radius: 1rem; |
| background: var(--surface); |
| box-shadow: var(--shadow); |
| font-family: "JetBrains Mono", monospace; |
| font-size: 0.78rem; |
| line-height: 1.5; |
| overflow-x: auto; |
| } |
|
|
| .bibtex code { |
| font-family: inherit; |
| } |
|
|
| |
| .footer { |
| position: relative; |
| padding: 2rem 0 2.5rem; |
| background: color-mix(in srgb, var(--surface) 75%, transparent); |
| } |
|
|
| .footer::before { |
| content: ""; |
| position: absolute; |
| top: 0; |
| left: 50%; |
| transform: translateX(-50%); |
| width: min(1120px, calc(100% - 2rem)); |
| height: 1px; |
| background: linear-gradient( |
| 90deg, |
| transparent 0%, |
| color-mix(in srgb, var(--brand) 18%, var(--border)) 18%, |
| color-mix(in srgb, var(--brand) 18%, var(--border)) 82%, |
| transparent 100% |
| ); |
| opacity: 0.85; |
| } |
|
|
| .footer-row { |
| display: flex; |
| flex-wrap: wrap; |
| align-items: center; |
| justify-content: space-between; |
| gap: 1rem; |
| } |
|
|
| .footer-copy { |
| margin: 0; |
| color: var(--text-soft); |
| font-size: 0.88rem; |
| } |
|
|
| .footer-links { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 1rem; |
| } |
|
|
| .footer-links a { |
| color: var(--accent); |
| font-size: 0.88rem; |
| font-weight: 600; |
| text-decoration: none; |
| } |
|
|
| .footer-links a:hover { |
| text-decoration: underline; |
| } |
|
|
| |
| @media (max-width: 1180px) { |
| .nav-links .nav-link { |
| padding: 0.3rem 0.32rem; |
| font-size: 0.76rem; |
| } |
|
|
| .action-btn--ghost { |
| display: none; |
| } |
| } |
|
|
| @media (max-width: 1080px) { |
| .nav-links { |
| display: none; |
| } |
|
|
| .nav-toggle { |
| display: flex; |
| } |
|
|
| .slide-dots { |
| display: none; |
| } |
| } |
|
|
| @media (max-width: 1024px) { |
| .feature-grid { |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| } |
|
|
| .feature-grid--three { |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| } |
|
|
| .demo-grid { |
| grid-template-columns: repeat(3, minmax(0, 1fr)); |
| } |
|
|
| .updates-grid { |
| grid-template-columns: 1fr; |
| } |
| } |
|
|
| @media (max-width: 760px) { |
| .top-nav__inner { |
| padding: 0.65rem 0; |
| min-height: auto; |
| } |
|
|
| .lang-toggle { |
| font-size: 0.72rem; |
| padding: 0.3rem 0.55rem; |
| } |
|
|
| .metrics-grid, |
| .metrics-grid--duo, |
| .feature-grid, |
| .feature-grid--three, |
| .demo-grid { |
| grid-template-columns: 1fr; |
| } |
|
|
| .section { |
| padding: 3.4rem 0; |
| } |
|
|
| .hero-cta-group .cta { |
| width: 100%; |
| } |
|
|
| .footer-row { |
| flex-direction: column; |
| align-items: flex-start; |
| } |
|
|
| .news-item { |
| grid-template-columns: 1fr; |
| gap: 0.25rem; |
| } |
| } |
|
|
| .table-wrap { |
| overflow-x: auto; |
| margin: 1.25rem 0 1.5rem; |
| border: 1px solid var(--border); |
| border-radius: 0.75rem; |
| background: var(--surface); |
| } |
|
|
| .ckpt-table { |
| width: 100%; |
| border-collapse: collapse; |
| font-size: 0.88rem; |
| } |
|
|
| .ckpt-table th, |
| .ckpt-table td { |
| padding: 0.65rem 0.85rem; |
| text-align: left; |
| border-bottom: 1px solid var(--border); |
| vertical-align: top; |
| } |
|
|
| .ckpt-table th { |
| font-size: 0.75rem; |
| letter-spacing: 0.04em; |
| text-transform: uppercase; |
| color: var(--muted); |
| background: color-mix(in srgb, var(--surface) 88%, var(--accent) 12%); |
| } |
|
|
| .ckpt-table tbody tr:last-child td { |
| border-bottom: none; |
| } |
|
|
| .ckpt-table code { |
| font-family: var(--font-mono, "JetBrains Mono", monospace); |
| font-size: 0.78rem; |
| word-break: break-all; |
| } |
|
|
| .code-block-wrap { |
| margin: 1rem 0; |
| } |
|
|
| .code-block-label { |
| margin: 0 0 0.35rem; |
| font-size: 0.78rem; |
| font-weight: 600; |
| letter-spacing: 0.03em; |
| text-transform: uppercase; |
| color: var(--muted); |
| } |
|
|
| .code-block { |
| margin: 0; |
| padding: 0.9rem 1rem; |
| border-radius: 0.65rem; |
| border: 1px solid var(--border); |
| background: color-mix(in srgb, var(--surface) 92%, #000 8%); |
| overflow-x: auto; |
| font-family: var(--font-mono, "JetBrains Mono", monospace); |
| font-size: 0.82rem; |
| line-height: 1.5; |
| } |
|
|
| .section-note { |
| margin-top: 1rem; |
| font-size: 0.92rem; |
| color: var(--muted); |
| max-width: 42rem; |
| } |
|
|
| @media (prefers-reduced-motion: reduce) { |
| html { |
| scroll-behavior: auto; |
| scroll-snap-type: none; |
| } |
|
|
| .ambient-orb, |
| .ambient-shimmer, |
| .page-shell::before { |
| animation: none; |
| } |
|
|
| .reveal { |
| opacity: 1; |
| transform: none; |
| transition: none; |
| } |
|
|
| .ambient-orb { |
| opacity: 0.35; |
| } |
|
|
| .cta:hover, |
| .metric-card:hover, |
| .action-btn:hover, |
| .card--accent:hover, |
| [data-zoomable]:hover img, |
| .back-top:hover { |
| transform: none; |
| } |
| } |
|
|