:root { --font-montserrat: "Montserrat", sans-serif; --color-black: #000; --color-white: #fff; --color-bg: #ffffff; --color-card: #eeeeee; --color-muted: #4a4a4a; --color-soft: #8e8e8e; --color-body: #aaaaaa; --color-dark: #1e1e1e; --color-explore: #f9f9f9; --color-footer: #070707; --color-footer-text: #bababa; --color-footer-line: #232323; --page-pad: 60px; --max-width: 1920px; --container-width: 1080px; --page-title-pattern: repeating-linear-gradient( 135deg, rgba(0, 0, 0, 0.045) 0 1px, transparent 1px 16px ), repeating-linear-gradient( 45deg, rgba(0, 0, 0, 0.03) 0 1px, transparent 1px 16px ); } * { box-sizing: border-box; padding: 0; margin: 0; } html { height: 100%; scroll-behavior: smooth; } html, body { max-width: 100vw; overflow-x: hidden; } body { min-height: 100%; color: var(--color-black); background: var(--color-bg); font-family: var(--font-montserrat), "Montserrat", sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } img { display: block; max-width: 100%; } button, a { font-family: inherit; color: inherit; } a { text-decoration: none; color: inherit; } button { background: none; border: none; cursor: pointer; } .icon { display: block; object-fit: contain; } .outline-btn { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; border: 0.5px solid var(--color-black); border-radius: 3px; background: transparent; color: var(--color-black); font-weight: 300; text-transform: uppercase; letter-spacing: 0.2em; white-space: nowrap; transition: color 0.3s ease, border-color 0.3s ease; } .outline-btn:hover, .outline-btn:focus-visible { color: var(--color-white); background: transparent; } .outline-btn:hover :is(span, strong, em, p, a, label, button), .outline-btn:focus-visible :is(span, strong, em, p, a, label, button) { color: var(--color-white); } .filter-chip { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 33px; padding: 6px 22px; border: 0; border-radius: 5px; background: #f6f6f6; color: var(--color-black); font: inherit; font-size: 18px; font-weight: 300; white-space: nowrap; cursor: pointer; transition: color 0.3s ease, background 0.3s ease, border-color 0.3s ease; } .filter-chip:hover, .filter-chip:focus-visible { color: var(--color-white); } .filter-chip:hover :is(span, strong, em, p, a, label, button), .filter-chip:focus-visible :is(span, strong, em, p, a, label, button) { color: var(--color-white); } .filter-chip.is-active { background: var(--color-black); color: var(--color-white); } .filter-chip.is-active:hover, .filter-chip.is-active:focus-visible { color: var(--color-black); } .filter-chip.is-active:hover :is(span, strong, em, p, a, label, button), .filter-chip.is-active:focus-visible :is(span, strong, em, p, a, label, button) { color: var(--color-black); } .tile-hover, .outline-btn, .filter-chip { position: relative; isolation: isolate; } .tile-hover::before, .outline-btn::before, .filter-chip::before { content: ""; position: absolute; inset: 0; background: var(--color-black); clip-path: inset(100% 0 0 0); transition: clip-path 0.45s cubic-bezier(0.25, 0.8, 0.25, 1); pointer-events: none; border-radius: inherit; } /* Tiles: wipe sits above bare text; children are raised below. */ .tile-hover::before { z-index: 0; } /* Buttons/chips often use direct text nodes (no child wrappers). Keep the wipe behind the label so white text stays visible. */ .outline-btn::before, .filter-chip::before { z-index: -1; } .filter-chip.is-active::before { background: var(--color-white); } .tile-hover:hover::before, .tile-hover:focus-within::before, .outline-btn:hover::before, .outline-btn:focus-visible::before, .filter-chip:hover::before, .filter-chip:focus-visible::before { clip-path: inset(0 0 0 0); } .tile-hover > *:not(img), .outline-btn > *, .filter-chip > * { position: relative; z-index: 2; } .tile-hover:hover, .tile-hover:focus-within, .tile-hover:hover :is(h1, h2, h3, p, span, strong, a), .tile-hover:focus-within :is(h1, h2, h3, p, span, strong, a) { color: var(--color-white); } .tile-hover :is(h1, h2, h3, p, span, strong, a) { transition: color 0.3s ease, border-color 0.3s ease; } .tile-hover:hover .outline-btn, .tile-hover:hover .outline-btn:hover, .tile-hover:focus-within .outline-btn { color: var(--color-white); border-color: var(--color-white); background: transparent; } .tile-hover:hover .outline-btn::before, .tile-hover:focus-within .outline-btn::before { clip-path: inset(100% 0 0 0); } .outline-btn:hover img, .outline-btn:focus-visible img, .filter-chip:hover img, .filter-chip:focus-visible img { position: relative; z-index: 2; } @media (prefers-reduced-motion: reduce) { .tile-hover::before, .outline-btn::before, .filter-chip::before { transition: none; } } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } @media (max-width: 1100px) { :root { --page-pad: 32px; } } @media (max-width: 720px) { :root { --page-pad: 20px; } }