/* Chrystal Math Design Tokens and Components Fonts: GFS Didot + Dosis (SIL OFL 1.1) For production in Germany, self-host WOFF2 files where practical. */ @import url("https://fonts.googleapis.com/css2?family=Dosis:wght@400;500;600;700&family=GFS+Didot&display=swap"); :root { --cm-bg: #140B24; --cm-bg-2: #21143A; --cm-bg-3: #2A1A44; --cm-light: #FFF7FB; --cm-text-on-dark: #F8F4FA; --cm-muted-on-dark: #CFC5D8; --cm-ink: #24172E; --cm-muted-ink: #62516D; --cm-magenta: #F740A7; --cm-cyan: #08D4F3; --cm-violet: #A146EE; --cm-blue: #568DF9; --cm-lime: #B7D92A; --cm-gold: #D6C65B; --cm-display: "GFS Didot", Didot, "Bodoni MT", serif; --cm-body: "Dosis", "Arial Narrow", sans-serif; --cm-radius-sm: .75rem; --cm-radius-md: 1.25rem; --cm-radius-lg: 2rem; --cm-shadow: 0 1.5rem 4rem rgba(9, 2, 18, .32); --cm-content: 75rem; } * { box-sizing: border-box; } html { color-scheme: dark; scroll-behavior: smooth; } body { margin: 0; font-family: var(--cm-body); font-size: 1.125rem; line-height: 1.55; background: var(--cm-bg); color: var(--cm-text-on-dark); } a { color: var(--cm-cyan); text-decoration-thickness: .08em; text-underline-offset: .18em; } a:hover { color: var(--cm-light); } .container { width: min(calc(100% - 2rem), var(--cm-content)); margin-inline: auto; } .eyebrow { color: var(--cm-magenta); font-size: .83rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; } h1, h2 { font-family: var(--cm-display); font-weight: 400; line-height: .96; margin: 0; text-wrap: balance; } h1 { font-size: clamp(3.7rem, 10vw, 7.8rem); } h2 { font-size: clamp(2.7rem, 6vw, 5rem); } h3 { font-size: 1.45rem; line-height: 1.15; margin: 0; } .gradient-text { background: linear-gradient(110deg, var(--cm-magenta), #f5d9ff 43%, var(--cm-violet) 65%, var(--cm-cyan)); -webkit-background-clip: text; background-clip: text; color: transparent; } .hero { min-height: 92vh; display: grid; align-items: center; position: relative; overflow: hidden; isolation: isolate; padding-block: 5rem; background: radial-gradient(circle at 15% 20%, rgba(247,64,167,.18), transparent 32%), radial-gradient(circle at 87% 14%, rgba(8,212,243,.15), transparent 31%), var(--cm-bg); } .hero::after { content: ""; position: absolute; inset: 10% -8% auto auto; width: 28rem; aspect-ratio: 1; border: 1px dashed rgba(183,217,42,.38); border-radius: 50%; z-index: -1; } .hero__grid { display: grid; gap: 3rem; grid-template-columns: minmax(0, 1.25fr) minmax(17rem, .75fr); align-items: center; } .hero p { max-width: 42rem; color: var(--cm-muted-on-dark); font-size: clamp(1.1rem, 2.3vw, 1.4rem); } .actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; } .button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .7rem 1.25rem; border-radius: 999px; border: 1px solid transparent; font-weight: 700; letter-spacing: .02em; text-decoration: none; transition: transform .18s ease, background .18s ease, color .18s ease; } .button:hover { transform: translateY(-2px); } .button--primary { background: var(--cm-magenta); color: var(--cm-bg); } .button--secondary { border-color: var(--cm-cyan); color: var(--cm-cyan); } .button--secondary:hover { background: var(--cm-cyan); color: var(--cm-bg); } .orbit-card { position: relative; min-height: 24rem; border-radius: var(--cm-radius-lg); background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.015)); border: 1px solid rgba(255,255,255,.13); box-shadow: var(--cm-shadow); } .orbit-card::before, .orbit-card::after { content: ""; position: absolute; border-radius: 50%; } .orbit-card::before { width: 12rem; aspect-ratio: 1; border: 2px solid var(--cm-violet); left: 14%; top: 18%; } .orbit-card::after { width: 1rem; aspect-ratio: 1; background: var(--cm-lime); box-shadow: 0 0 1.8rem .4rem rgba(183,217,42,.55); right: 18%; top: 24%; } .node { position: absolute; width: 1.1rem; aspect-ratio: 1; border-radius: 50%; background: var(--cm-bg); border: 3px solid var(--cm-cyan); } .node:nth-child(1) { left: 18%; top: 65%; } .node:nth-child(2) { left: 52%; top: 49%; border-color: var(--cm-magenta); } .node:nth-child(3) { right: 12%; bottom: 18%; border-color: var(--cm-lime); } .node-line { position: absolute; height: 2px; background: linear-gradient(90deg, var(--cm-cyan), var(--cm-violet), var(--cm-lime)); width: 63%; left: 21%; top: 59%; transform: rotate(-9deg); transform-origin: left; } .events { background: var(--cm-light); color: var(--cm-ink); padding-block: 6rem; } .events .eyebrow { color: var(--cm-violet); } .events__header { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: end; margin-bottom: 2rem; } .events__header p { color: var(--cm-muted-ink); margin: 0; } .event-card { display: grid; grid-template-columns: 9rem 1fr auto; gap: 1.5rem; align-items: center; padding: 1.3rem; background: #fff; border: 1px solid #eadfea; border-radius: var(--cm-radius-md); box-shadow: 0 1.2rem 3rem rgba(36,23,46,.08); } .event-date { min-height: 8rem; display: grid; place-content: center; text-align: center; border-radius: 1rem; background: var(--cm-magenta); color: var(--cm-light); } .event-date strong { font-family: var(--cm-display); font-size: 3.6rem; line-height: .8; font-weight: 400; } .event-date span { margin-top: .55rem; font-weight: 700; font-size: .75rem; letter-spacing: .13em; } .event-card h3 { font-family: var(--cm-display); font-size: 2rem; font-weight: 400; } .event-card p { margin: .45rem 0 0; color: var(--cm-muted-ink); } .event-card .button { color: var(--cm-ink); border-color: var(--cm-ink); } .swatches { display: flex; height: .55rem; } .swatches span { flex: 1; } footer { padding: 2rem; background: var(--cm-bg); color: var(--cm-muted-on-dark); font-size: .9rem; text-align: center; } @media (max-width: 760px) { .hero__grid, .events__header { grid-template-columns: 1fr; } .orbit-card { min-height: 18rem; } .event-card { grid-template-columns: 6.5rem 1fr; } .event-card > .button { grid-column: 1 / -1; } .event-date { min-height: 6.5rem; } } @media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }