/* Generated by scripts/preview-styles.mjs; edit src/styles/global.css. */ /* ========================================================================== CTAO Science Portal: content page mockup Colours and type follow the CTAO Brand Guidelines (April 2024). ========================================================================== */ /* Fonts ========================================================================== */ @font-face { font-family: "Inter"; font-weight: 400 700; font-display: swap; src: url("/assets/fonts/inter-latin.woff2") format("woff2"); } @font-face { font-family: "Space Grotesk"; font-weight: 500 700; font-display: swap; src: url("/assets/fonts/space-grotesk-latin.woff2") format("woff2"); } /* Tokens ========================================================================== */ :root { /* Brand main colours (D.2.1) */ --galaxy-blue: #00004a; --cherenkov-blue: #00e4d8; --moon-gray: #f5f5f5; /* Brand secondary colours (D.2.2) */ --white: #ffffff; --cosmic-azure: #007aff; --interstellar-indigo: #00009c; /* Text */ --text: #111111; --text-muted: #555555; /* Cosmic Azure at 84% brightness: 5.4:1 on white, 3.5:1 against body text */ --link: #0066d6; /* Type: Inter for everything, Space Grotesk for headlines (D.3) */ --font-body: "Inter", Arial, sans-serif; --font-head: "Space Grotesk", Arial, sans-serif; /* Layout */ --content-width: 85rem; --gutter: clamp(1rem, 4vw, 2.5rem); --header-height: 7rem; --header-height-scrolled: 5rem; --radius-lg: 60px; --radius-md: 30px; --radius-sm: 15px; /* Dropdown submenus (Example, language) */ --radius-menu: 8px; --transition: 0.3s ease-in-out; /* Film grain tile over the hero background, also hides gradient banding */ --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E"); } /* Base ========================================================================== */ *, *::before, *::after { box-sizing: border-box; } html { scroll-padding-top: var(--header-height-scrolled); } body { margin: 0; font-family: var(--font-body); font-size: 1rem; line-height: 1.5; color: var(--text); background: var(--white); -webkit-font-smoothing: antialiased; } body.no-scroll { overflow: hidden; } img { display: block; max-width: 100%; height: auto; } a { color: var(--link); text-decoration: none; } a:hover, a:focus-visible { text-decoration: underline; text-underline-offset: 0.15em; } button { padding: 0; font: inherit; color: inherit; background: none; border: 0; cursor: pointer; } /* Focus ring: Link blue on light backgrounds, Cherenkov Blue on dark ones */ :focus-visible { outline: 2px solid var(--link); outline-offset: 3px; } .site-header :focus-visible, .page-hero :focus-visible, .site-footer :focus-visible { outline-color: var(--cherenkov-blue); } /* Prose ========================================================================== */ body { padding-bottom: 5rem; } body > * { max-width: 64rem; } /* Galaxy Blue headline on light background (D.3.4) */ body h2 { margin: 3rem 0 1rem; font-family: var(--font-head); font-size: clamp(1.75rem, 3vw, 2.375rem); font-weight: 500; line-height: 1.1; letter-spacing: -0.02em; color: var(--galaxy-blue); } body h2:first-child { margin-top: 0; } body p { margin: 0 0 1.25rem; font-size: 1.0625rem; line-height: 1.6; } /* Text links: colour only at rest, underline on hover and focus */ body a:not(.btn):hover, body a:not(.btn):focus-visible { text-decoration: underline; text-underline-offset: 0.15em; } /* Cherenkov Blue fails contrast as text on white, so it is the accent bar */ body .highlight, body blockquote { margin: 2.5rem 0; padding-left: 1.5rem; font-size: 1.375rem; font-weight: 500; line-height: 1.35; color: var(--galaxy-blue); border-left: 4px solid var(--cherenkov-blue); } /* Buttons ========================================================================== */ .btn { display: inline-flex; align-items: center; gap: 0.75rem; height: 2.75rem; padding: 0 1.5rem; font-size: 0.9375rem; font-weight: 700; border-radius: 999px; } /* Underline the label only: a flex container would pass it on to the arrow */ .btn:hover, .btn:focus-visible { text-decoration: none; } .btn:hover .btn__label, .btn:focus-visible .btn__label { text-decoration: underline; text-underline-offset: 0.15em; } .btn--primary { color: var(--white); background: linear-gradient( 90deg, var(--galaxy-blue) 0%, var(--cosmic-azure) 70%, var(--cherenkov-blue) 100% ); } .btn--primary:hover { filter: brightness(1.1); } body { overflow-wrap: anywhere; } body h3, body h4, body h5, body h6 { color: var(--galaxy-blue); font-family: var(--font-head); } body li { margin-bottom: 0.5rem; } body blockquote p { font-size: inherit; line-height: inherit; } body pre { padding: 1rem; overflow-x: auto; background: var(--moon-gray); } body code { overflow-wrap: normal; } body table { display: block; overflow-x: auto; border-collapse: collapse; } body th, body td { padding: 0.75rem; border-bottom: 1px solid #ddd; text-align: left; } body hr { margin: 2rem 0; border: 0; border-top: 1px solid #ddd; } body img { border-radius: var(--radius-sm); } body { display: block; min-height: 0; max-width: 64rem; margin: 0 auto; padding: 1.5rem; } h1 { color: var(--galaxy-blue); font-family: var(--font-head); font-weight: 500; line-height: 1.05; }