/* dlstack — Singularity template WebGL nebula + procedural starfield + chromatic-glow hero. Scoped to :root[data-template="cosmos"] so it's inert otherwise. */ @property --cosmos-hue { syntax: ""; inherits: false; initial-value: 0deg; } :root[data-template="cosmos"] { --paper: #050211; --paper-2: #0E0826; --ink: #ECF1FF; --ink-2: #C2CDF0; --muted: #8693C2; --rule: rgba(180, 200, 255, 0.16); --accent: #7AF7FF; --accent-2: #FF4ECD; --accent-3: #B07AFF; --on-accent: #050211; --display: "Orbitron", "Geist", system-ui, sans-serif; --body: "Geist", system-ui, sans-serif; --mono: "Geist Mono", ui-monospace, Menlo, monospace; --radius: 14px; color-scheme: dark; } /* always dark — ignore data-theme on cosmos */ :root[data-template="cosmos"][data-theme="light"], :root[data-template="cosmos"][data-theme="dark"], :root[data-template="cosmos"][data-theme="auto"] { --paper: #050211; --paper-2: #0E0826; --ink: #ECF1FF; --ink-2: #C2CDF0; --muted: #8693C2; } /* remove editorial paper grain */ :root[data-template="cosmos"] body::before { display: none; } /* shader canvas — fixed behind everything */ :root[data-template="cosmos"] .cosmos-bg { position: fixed; inset: 0; z-index: 0; width: 100vw; height: 100vh; pointer-events: none; opacity: 0; animation: cosmos-fade-in 1800ms 200ms cubic-bezier(0.16, 1, 0.30, 1) forwards; } @keyframes cosmos-fade-in { to { opacity: 1; } } /* cursor aurora — soft cyan/magenta halo that lags behind the pointer */ :root[data-template="cosmos"] .cosmos-halo { position: fixed; top: 0; left: 0; width: 600px; height: 600px; border-radius: 50%; pointer-events: none; z-index: 2; background: radial-gradient(circle at 50% 50%, rgba(122, 247, 255, 0.20) 0%, rgba(176, 122, 255, 0.14) 18%, rgba(255, 78, 205, 0.10) 38%, transparent 65%); mix-blend-mode: screen; filter: blur(8px); opacity: 0; transition: opacity 700ms cubic-bezier(0.22, 1, 0.36, 1); will-change: transform, opacity; } :root[data-template="cosmos"].cosmos-cursor .cosmos-halo { opacity: 1; } /* periodic comets — three streaks crossing the page */ :root[data-template="cosmos"] .cosmos-comet { position: fixed; top: 0; left: 0; width: clamp(120px, 12vw, 200px); height: 2px; pointer-events: none; z-index: 1; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.85) 60%, var(--accent) 85%, transparent 100%); filter: drop-shadow(0 0 6px var(--accent)) drop-shadow(0 0 18px var(--accent-3)); opacity: 0; transform-origin: right center; } :root[data-template="cosmos"] .cosmos-comet--1 { animation: cosmos-comet-a 14s 4s ease-in infinite; } :root[data-template="cosmos"] .cosmos-comet--2 { animation: cosmos-comet-b 22s 11s ease-in infinite; } :root[data-template="cosmos"] .cosmos-comet--3 { animation: cosmos-comet-c 19s 19s ease-in infinite; } @keyframes cosmos-comet-a { 0% { transform: translate(-20vw, 12vh) rotate(28deg) scaleX(0.4); opacity: 0; } 4% { opacity: 1; } 18% { transform: translate(110vw, 70vh) rotate(28deg) scaleX(1); opacity: 0; } 100% { opacity: 0; } } @keyframes cosmos-comet-b { 0% { transform: translate(115vw, 8vh) rotate(158deg) scaleX(0.4); opacity: 0; } 5% { opacity: 1; } 22% { transform: translate(-20vw, 65vh) rotate(158deg) scaleX(1); opacity: 0; } 100% { opacity: 0; } } @keyframes cosmos-comet-c { 0% { transform: translate(-20vw, 50vh) rotate(45deg) scaleX(0.4); opacity: 0; } 3% { opacity: 1; } 16% { transform: translate(110vw, -10vh) rotate(45deg) scaleX(1); opacity: 0; } 100% { opacity: 0; } } /* card 3D tilt + cursor-tracking holographic shimmer */ :root[data-template="cosmos"] .card { transform-style: preserve-3d; perspective: 1000px; } :root[data-template="cosmos"] .card:hover { transform: translateY(-4px) rotateX(calc(var(--ty, 0) * -6deg)) rotateY(calc(var(--tx, 0) * 6deg)); } :root[data-template="cosmos"] .card .card__shimmer { position: absolute; inset: 0; pointer-events: none; border-radius: inherit; background: radial-gradient(circle 220px at var(--sx, 50%) var(--sy, 50%), rgba(122, 247, 255, 0.20), rgba(176, 122, 255, 0.10) 35%, transparent 70%); opacity: 0; mix-blend-mode: screen; transition: opacity 350ms cubic-bezier(0.22, 1, 0.36, 1); z-index: 0; } :root[data-template="cosmos"] .card:hover .card__shimmer { opacity: 1; } :root[data-template="cosmos"] .card > * { position: relative; z-index: 1; } /* hero parallax — name shifts counter to cursor, orb drifts with it */ :root[data-template="cosmos"] .hero__name { transform: translate3d(calc(var(--cm-x, 0) * -10px), calc(var(--cm-y, 0) * -6px), 0); transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1); will-change: transform; } :root[data-template="cosmos"] .hero__asterism { /* override the base drift to include parallax */ animation: cosmos-orb-rise 1400ms 300ms cubic-bezier(0.16, 1, 0.30, 1) both; transform: translate3d(calc(var(--cm-x, 0) * 16px), calc(var(--cm-y, 0) * 10px), 0); transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1); } :root[data-template="cosmos"] .hero__tagline { transform: translate3d(calc(var(--cm-x, 0) * -4px), calc(var(--cm-y, 0) * -2px), 0); transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1); } /* CSS-only static fallback nebula when WebGL is unavailable */ :root[data-template="cosmos"].cosmos-static body { background: radial-gradient(ellipse at 20% 30%, rgba(176, 122, 255, 0.35), transparent 55%), radial-gradient(ellipse at 80% 70%, rgba(255, 78, 205, 0.28), transparent 50%), radial-gradient(ellipse at 50% 100%, rgba(122, 247, 255, 0.22), transparent 55%), var(--paper); } :root[data-template="cosmos"].cosmos-static body::after { content: ""; position: fixed; inset: 0; pointer-events: none; background-image: radial-gradient(1px 1px at 12% 22%, #fff 50%, transparent 100%), radial-gradient(1px 1px at 78% 33%, #fff 50%, transparent 100%), radial-gradient(1.5px 1.5px at 44% 78%, #fff 50%, transparent 100%), radial-gradient(1px 1px at 24% 88%, #fff 50%, transparent 100%), radial-gradient(1px 1px at 64% 14%, #fff 50%, transparent 100%), radial-gradient(1px 1px at 90% 90%, #fff 50%, transparent 100%); opacity: 0.55; } :root[data-template="cosmos"] body { background: var(--paper); } :root[data-template="cosmos"] .shell { z-index: 1; } /* ───── marker bar ───── */ :root[data-template="cosmos"] .marker { border-bottom: 1px solid var(--rule); font-family: var(--display); font-weight: 500; letter-spacing: 0.22em; color: var(--ink-2); } :root[data-template="cosmos"] .marker__brand { color: var(--accent); gap: 0.55rem; } :root[data-template="cosmos"] .marker__brand .star { width: 10px; height: 10px; background: var(--accent); border-radius: 50%; display: inline-block; font-size: 0; transform: none; box-shadow: 0 0 8px var(--accent), 0 0 18px color-mix(in oklch, var(--accent) 80%, transparent), 0 0 32px color-mix(in oklch, var(--accent-2) 60%, transparent); animation: cosmos-pulse 2.4s ease-in-out infinite; } @keyframes cosmos-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.3); opacity: 0.75; } } :root[data-template="cosmos"] .marker__year { color: var(--accent-2); text-shadow: 0 0 12px color-mix(in oklch, var(--accent-2) 60%, transparent); } :root[data-template="cosmos"] .theme { border-radius: 999px; border-color: var(--rule); font-family: var(--display); font-weight: 500; letter-spacing: 0.18em; color: var(--ink-2); background: rgba(20, 14, 50, 0.4); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } :root[data-template="cosmos"] .theme:hover { background: rgba(122, 247, 255, 0.12); border-color: var(--accent); color: var(--accent); box-shadow: 0 0 18px color-mix(in oklch, var(--accent) 40%, transparent); } /* ───── hero ───── */ :root[data-template="cosmos"] .hero { position: relative; } :root[data-template="cosmos"] .hero__name { font-family: var(--display); font-style: normal; font-weight: 700; font-variation-settings: normal; letter-spacing: -0.03em; line-height: 0.92; color: var(--ink); position: relative; } :root[data-template="cosmos"] .hero__name .hero__name-first { font-family: var(--display); font-weight: 500; letter-spacing: -0.01em; color: var(--ink); text-shadow: 0 0 24px rgba(122, 247, 255, 0.45), 0 0 60px rgba(176, 122, 255, 0.30); } :root[data-template="cosmos"] .hero__name em { font-style: normal; font-weight: 900; font-variation-settings: normal; color: var(--accent-2); text-shadow: 0 0 24px rgba(255, 78, 205, 0.55), 0 0 50px rgba(255, 78, 205, 0.35), 0 0 90px rgba(176, 122, 255, 0.30); position: relative; display: inline-block; } :root[data-template="cosmos"] .hero__name em::before, :root[data-template="cosmos"] .hero__name em::after { content: attr(data-text); position: absolute; left: 0; top: 0; pointer-events: none; opacity: 0; transition: opacity 220ms cubic-bezier(0.22, 1, 0.36, 1); mix-blend-mode: screen; } :root[data-template="cosmos"] .hero__name em::before { color: var(--accent); transform: translate(-3px, 0); } :root[data-template="cosmos"] .hero__name em::after { color: var(--accent-2); transform: translate(3px, 0); } :root[data-template="cosmos"] .hero__name:hover em::before, :root[data-template="cosmos"] .hero__name:hover em::after { opacity: 0.7; animation: cosmos-rgb-shift 1.2s steps(8) infinite; } @keyframes cosmos-rgb-shift { 0% { transform: translate(-3px, 0); } 25% { transform: translate(-2px, 1px); } 50% { transform: translate(-4px, -1px); } 75% { transform: translate(-2px, 0); } 100% { transform: translate(-3px, 0); } } :root[data-template="cosmos"] .hero__name:hover em::after { animation-name: cosmos-rgb-shift-2; } @keyframes cosmos-rgb-shift-2 { 0% { transform: translate(3px, 0); } 25% { transform: translate(4px, -1px); } 50% { transform: translate(2px, 1px); } 75% { transform: translate(4px, 0); } 100% { transform: translate(3px, 0); } } /* asterism becomes a glowing orb */ :root[data-template="cosmos"] .hero__asterism { font-size: 0; color: transparent; width: clamp(4rem, 8vw, 6.5rem); height: clamp(4rem, 8vw, 6.5rem); background: radial-gradient(circle at 35% 35%, #fff 0%, var(--accent) 25%, var(--accent-3) 55%, transparent 80%); border-radius: 50%; transform: none; filter: blur(0.5px); box-shadow: 0 0 40px var(--accent), 0 0 80px var(--accent-3), 0 0 120px color-mix(in oklch, var(--accent-2) 60%, transparent); animation: cosmos-orb-rise 1400ms 300ms cubic-bezier(0.16, 1, 0.30, 1) both, cosmos-orb-drift 9s ease-in-out 1700ms infinite; } @keyframes cosmos-orb-rise { from { opacity: 0; transform: scale(0.2) translateY(-20px); } to { opacity: 0.95; transform: scale(1) translateY(0); } } @keyframes cosmos-orb-drift { 0%, 100% { transform: translate(0, 0); } 33% { transform: translate(-8px, 6px); } 66% { transform: translate(6px, -4px); } } :root[data-template="cosmos"] .hero__tagline { font-family: var(--display); font-style: normal; font-weight: 400; font-variation-settings: normal; letter-spacing: 0.04em; color: var(--ink-2); text-transform: uppercase; font-size: clamp(1rem, 0.8rem + 0.9vw, 1.4rem); max-width: 36ch; } :root[data-template="cosmos"] .hero__tagline span { color: var(--accent); text-shadow: 0 0 16px color-mix(in oklch, var(--accent) 70%, transparent); padding: 0 0.25em; } :root[data-template="cosmos"] .hero__bio { color: var(--ink-2); font-family: var(--body); } /* ───── social ───── */ :root[data-template="cosmos"] .social a { border-radius: 999px; border-color: var(--rule); font-family: var(--display); font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; font-size: var(--fs-mini); padding: 10px 16px; color: var(--ink-2); background: rgba(20, 14, 50, 0.4); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } :root[data-template="cosmos"] .social a:hover { background: rgba(122, 247, 255, 0.08); border-color: var(--accent); color: var(--accent); transform: translateY(-2px); box-shadow: 0 0 22px color-mix(in oklch, var(--accent) 35%, transparent), 0 8px 22px -10px color-mix(in oklch, var(--accent) 50%, transparent); } /* ───── sections ───── */ :root[data-template="cosmos"] .section__head { border-bottom: 1px solid var(--rule); position: relative; } :root[data-template="cosmos"] .section__head::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: linear-gradient(90deg, var(--accent) 0%, var(--accent-3) 40%, var(--accent-2) 70%, transparent 100%); box-shadow: 0 0 12px var(--accent-3); transform-origin: left; animation: cosmos-line-in 1400ms cubic-bezier(0.16, 1, 0.30, 1) both; } @keyframes cosmos-line-in { from { transform: scaleX(0); opacity: 0; } to { transform: scaleX(1); opacity: 1; } } :root[data-template="cosmos"] .section__numwrap small { color: var(--accent); font-weight: 600; font-style: normal; font-family: var(--display); font-variation-settings: normal; letter-spacing: 0.22em; font-size: var(--fs-sm); text-shadow: 0 0 12px color-mix(in oklch, var(--accent) 60%, transparent); } :root[data-template="cosmos"] .section__num { font-family: var(--display); font-style: normal; font-weight: 900; font-variation-settings: normal; color: var(--ink); letter-spacing: -0.04em; background: linear-gradient(180deg, var(--ink) 0%, var(--accent) 60%, var(--accent-3) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 0 18px rgba(122, 247, 255, 0.4)); } :root[data-template="cosmos"] .section__title { font-family: var(--display); font-style: normal; font-weight: 700; font-variation-settings: normal; letter-spacing: -0.01em; color: var(--ink); } :root[data-template="cosmos"] .section__kicker { font-family: var(--display); font-style: normal; font-weight: 400; font-variation-settings: normal; text-transform: uppercase; letter-spacing: 0.16em; font-size: var(--fs-mini); color: var(--muted); } /* ───── cards — holographic ───── */ :root[data-template="cosmos"] .card { border-radius: var(--radius); border: 1px solid var(--rule); background: linear-gradient(135deg, rgba(30, 22, 64, 0.55), rgba(14, 8, 38, 0.55)); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); color: var(--ink); isolation: isolate; overflow: hidden; } :root[data-template="cosmos"] .card::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; background: conic-gradient(from var(--cosmos-hue, 0deg), var(--accent), var(--accent-2), var(--accent-3), var(--accent)); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity 350ms cubic-bezier(0.22, 1, 0.36, 1); pointer-events: none; z-index: 1; } :root[data-template="cosmos"] .card:hover { transform: translateY(-4px); border-color: transparent; box-shadow: 0 0 0 1px rgba(255,255,255,0.04), 0 18px 44px -18px rgba(122, 247, 255, 0.35), 0 6px 20px -8px rgba(255, 78, 205, 0.30); } :root[data-template="cosmos"] .card:hover::before { opacity: 1; animation: cosmos-hue-rot 6s linear infinite; } @keyframes cosmos-hue-rot { to { --cosmos-hue: 360deg; } } :root[data-template="cosmos"] .card::after { color: var(--accent); font-family: var(--display); font-weight: 700; text-shadow: 0 0 8px color-mix(in oklch, var(--accent) 70%, transparent); } :root[data-template="cosmos"] .card__title { font-family: var(--display); font-weight: 600; letter-spacing: -0.005em; color: var(--ink); } :root[data-template="cosmos"] .card__desc { font-family: var(--body); color: var(--ink-2); } :root[data-template="cosmos"] .card__host { font-family: var(--display); text-transform: uppercase; font-weight: 500; letter-spacing: 0.14em; color: var(--accent); text-shadow: 0 0 8px color-mix(in oklch, var(--accent) 50%, transparent); } :root[data-template="cosmos"] .card__date { font-family: var(--display); font-weight: 500; letter-spacing: 0.10em; color: var(--muted); } :root[data-template="cosmos"] .card__meta .card__date::before { color: var(--accent-2); } /* link favicon */ :root[data-template="cosmos"] .card--link .favicon { border-radius: 10px; border-color: var(--rule); background: rgba(255,255,255,0.04); } /* project card */ :root[data-template="cosmos"] .card--project .card__title { font-family: var(--display); font-weight: 700; letter-spacing: -0.01em; font-size: var(--fs-lg); line-height: 1.05; background: linear-gradient(135deg, var(--ink) 0%, var(--accent) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } /* featured — accent glow card */ :root[data-template="cosmos"] .card--featured { background: radial-gradient(circle at 100% 0%, rgba(255, 78, 205, 0.45), transparent 60%), radial-gradient(circle at 0% 100%, rgba(122, 247, 255, 0.4), transparent 65%), linear-gradient(135deg, rgba(176, 122, 255, 0.45), rgba(14, 8, 38, 0.8)); border-color: rgba(255,255,255,0.12); color: #fff; } :root[data-template="cosmos"] .card--featured::before { opacity: 0.55; animation: cosmos-hue-rot 6s linear infinite; } :root[data-template="cosmos"] .card--featured:hover::before { opacity: 1; } :root[data-template="cosmos"] .card--featured .card__title { -webkit-text-fill-color: #fff; background: none; color: #fff; text-shadow: 0 0 24px rgba(122, 247, 255, 0.55), 0 0 50px rgba(255, 78, 205, 0.45); font-weight: 700; font-size: clamp(1.85rem, 1.30rem + 1.6vw, 2.6rem); letter-spacing: -0.025em; line-height: 1; } :root[data-template="cosmos"] .card--featured .card__desc { color: rgba(255,255,255,0.85); } :root[data-template="cosmos"] .card--featured::after { color: #fff; } /* tags */ :root[data-template="cosmos"] .tag { border-radius: 999px; border-color: rgba(180, 200, 255, 0.22); background: rgba(122, 247, 255, 0.08); color: var(--accent); font-family: var(--display); font-weight: 500; text-transform: uppercase; letter-spacing: 0.10em; } :root[data-template="cosmos"] .card:hover .tag { border-color: var(--accent); background: rgba(122, 247, 255, 0.16); } :root[data-template="cosmos"] .card--featured .tag { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.30); color: #fff; } /* youtube */ :root[data-template="cosmos"] .card--youtube { border-color: var(--rule); } :root[data-template="cosmos"] .yt__play { background: rgba(5, 2, 17, 0.5); border: 1.5px solid var(--accent); box-shadow: 0 0 18px color-mix(in oklch, var(--accent) 50%, transparent), inset 0 0 12px color-mix(in oklch, var(--accent) 30%, transparent); } :root[data-template="cosmos"] .yt__play svg { fill: var(--accent); } :root[data-template="cosmos"] .yt:hover .yt__play { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 30px var(--accent), 0 0 60px var(--accent-3); } :root[data-template="cosmos"] .yt:hover .yt__play svg { fill: var(--paper); } :root[data-template="cosmos"] .yt__title { font-family: var(--display); font-weight: 500; letter-spacing: 0; text-shadow: 0 0 12px rgba(122, 247, 255, 0.5); } /* portfolio */ :root[data-template="cosmos"] .card--portfolio { border-color: var(--rule); } :root[data-template="cosmos"] .portfolio__caption { border-top: 1px solid var(--rule); background: rgba(14, 8, 38, 0.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } :root[data-template="cosmos"] .portfolio__caption .card__title { font-family: var(--display); font-weight: 700; letter-spacing: -0.005em; background: linear-gradient(135deg, var(--ink) 0%, var(--accent) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } :root[data-template="cosmos"] .card--portfolio:hover .portfolio__caption .card__title { background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } /* clients */ :root[data-template="cosmos"] .client__logo { border-radius: 14px; border-color: var(--rule); background: rgba(255,255,255,0.03); backdrop-filter: blur(8px); } :root[data-template="cosmos"] .card--client:hover .client__logo { border-color: var(--accent); background: rgba(122, 247, 255, 0.08); box-shadow: 0 0 24px color-mix(in oklch, var(--accent) 30%, transparent), 0 8px 22px -10px color-mix(in oklch, var(--accent) 40%, transparent); } :root[data-template="cosmos"] .client__logo[data-fallback] { font-family: var(--display); font-weight: 700; color: var(--accent); text-shadow: 0 0 14px color-mix(in oklch, var(--accent) 60%, transparent); } :root[data-template="cosmos"] .client__title { font-family: var(--display); font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; font-size: var(--fs-mini); color: var(--ink-2); } :root[data-template="cosmos"] .card--client:hover .client__title { color: var(--accent); } /* footer */ :root[data-template="cosmos"] .foot { border-top: 1px solid var(--rule); color: var(--muted); font-family: var(--display); letter-spacing: 0.2em; } :root[data-template="cosmos"] .foot__mark { font-family: var(--display); font-weight: 900; color: var(--accent); text-shadow: 0 0 16px color-mix(in oklch, var(--accent) 60%, transparent); } /* ───── testimonial / carousel ───── */ :root[data-template="cosmos"] .card--testimonial { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; } :root[data-template="cosmos"] .testimonial__mark { color: var(--accent); text-shadow: 0 0 18px color-mix(in oklch, var(--accent) 70%, transparent), 0 0 40px color-mix(in oklch, var(--accent-3) 50%, transparent); } :root[data-template="cosmos"] .testimonial__quote { font-family: var(--body); font-weight: 400; font-variation-settings: normal; color: var(--ink); } :root[data-template="cosmos"] .testimonial__by { border-top-color: var(--rule); } :root[data-template="cosmos"] .testimonial__name { font-family: var(--display); color: var(--ink); text-transform: uppercase; letter-spacing: 0.06em; } :root[data-template="cosmos"] .testimonial__meta { font-family: var(--display); letter-spacing: 0.10em; color: var(--accent); } :root[data-template="cosmos"] .testimonial__avatar { border-color: var(--rule); background: rgba(255,255,255,0.04); } :root[data-template="cosmos"] .carousel__nav { background: rgba(20, 14, 50, 0.5); backdrop-filter: blur(8px); border-color: var(--rule); color: var(--ink-2); font-family: var(--display); } :root[data-template="cosmos"] .carousel__nav:hover { background: rgba(122, 247, 255, 0.12); border-color: var(--accent); color: var(--accent); box-shadow: 0 0 18px color-mix(in oklch, var(--accent) 40%, transparent); } :root[data-template="cosmos"] .carousel__dot { background: var(--rule); } :root[data-template="cosmos"] .carousel__dot.is-active { background: var(--accent); box-shadow: 0 0 10px var(--accent); } /* selection */ :root[data-template="cosmos"] ::selection { background: var(--accent); color: var(--paper); } :root[data-template="cosmos"] :focus-visible { outline-color: var(--accent); } /* reduced motion — strip glows + animations */ @media (prefers-reduced-motion: reduce) { :root[data-template="cosmos"] .marker__brand .star, :root[data-template="cosmos"] .hero__asterism, :root[data-template="cosmos"] .section__head::after, :root[data-template="cosmos"] .card::before, :root[data-template="cosmos"] .cosmos-comet { animation: none !important; transition: none !important; } :root[data-template="cosmos"] .cosmos-bg, :root[data-template="cosmos"] .cosmos-halo, :root[data-template="cosmos"] .cosmos-comet { display: none; } :root[data-template="cosmos"] .hero__name, :root[data-template="cosmos"] .hero__tagline, :root[data-template="cosmos"] .hero__asterism { transform: none !important; } :root[data-template="cosmos"].cosmos-static body { background: radial-gradient(ellipse at 30% 20%, rgba(176, 122, 255, 0.25), transparent 60%), radial-gradient(ellipse at 70% 80%, rgba(122, 247, 255, 0.18), transparent 60%), var(--paper); } }