:root { --ink: #070706; --ink-2: #11110f; --ink-3: #1b1b17; --paper: #f1eee6; --paper-2: #d8d3c8; --muted: #a7a197; --muted-dark: #766f64; --line: rgba(241, 238, 230, 0.15); --line-strong: rgba(241, 238, 230, 0.32); --hot: #f04f2f; --hot-2: #ff724c; --signal: #c8ff49; --cyan: #73ddff; --steel: #a8bdc2; --display: "Barlow Condensed", "Noto Sans KR", sans-serif; --body: "Noto Sans KR", system-ui, sans-serif; --mono: "IBM Plex Mono", "Noto Sans KR", monospace; --shell: min(91vw, 1480px); --header-h: 82px; --ease: cubic-bezier(0.2, 0.78, 0.2, 1); --ease-out: cubic-bezier(0.16, 1, 0.3, 1); } * { box-sizing: border-box; } html { scroll-behavior: smooth; scroll-padding-top: 94px; background: var(--ink); } body { margin: 0; background: linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px) 0 0 / 84px 84px, linear-gradient(180deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px) 0 0 / 84px 84px, var(--ink); color: var(--paper); font-family: var(--body); font-size: 16px; line-height: 1.7; letter-spacing: 0; overflow-x: clip; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; } body.is-loading { overflow: hidden; } html.no-js body.is-loading { overflow: auto; } body::before { content: ""; position: fixed; inset: 0; z-index: 9000; pointer-events: none; opacity: 0.035; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; } img { display: block; max-width: 100%; } a { color: inherit; text-decoration: none; } button, input, textarea, select { font: inherit; } button { color: inherit; } button, a { -webkit-tap-highlight-color: transparent; } ::selection { background: var(--hot); color: #fff; } :focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; } .shell { width: var(--shell); margin-inline: auto; } .section { position: relative; } .eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; color: var(--muted); font-family: var(--mono); font-size: 0.78rem; font-weight: 600; letter-spacing: 0; text-transform: uppercase; } .eyebrow::before { content: ""; width: 34px; height: 1px; background: currentColor; } .button { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 20px; border: 1px solid var(--line-strong); border-radius: 4px; background: rgba(7, 7, 6, 0.36); color: var(--paper); font-family: var(--mono); font-size: 0.75rem; font-weight: 600; letter-spacing: 0; text-transform: uppercase; overflow: hidden; isolation: isolate; transition: color 0.35s var(--ease), border-color 0.35s var(--ease), transform 0.35s var(--ease); } .button::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--paper); transform: translateY(104%); transition: transform 0.42s var(--ease-out); } .button svg { width: 18px; height: 18px; stroke-width: 2; transition: transform 0.35s var(--ease); } .button:hover, .button:focus-visible { color: var(--ink); border-color: var(--paper); transform: translateY(-2px); } .button:hover::before, .button:focus-visible::before { transform: translateY(0); } .button:hover svg, .button:focus-visible svg { transform: translate(3px, -3px); } .button--hot { border-color: var(--hot); background: var(--hot); color: #fff; } .button--hot::before { background: var(--hot-2); } .button--hot:hover, .button--hot:focus-visible { color: #fff; border-color: var(--hot-2); } .loader { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; background: var(--ink); transition: opacity 0.72s var(--ease), visibility 0.72s; } html.no-js .loader { display: none; } .loader__inner { width: min(620px, 84vw); } .loader__top, .loader__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; } .loader__top strong { font-family: var(--display); font-size: 3rem; line-height: 0.9; } .loader__top span, .loader__foot { color: var(--muted); font-family: var(--mono); font-size: 0.74rem; text-transform: uppercase; } .loader__track { position: relative; height: 1px; margin: 18px 0 14px; background: var(--line); } .loader__track span { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--hot-2); box-shadow: 0 0 20px rgba(255, 114, 76, 0.5); } body.is-ready .loader { display: none; visibility: hidden; opacity: 0; pointer-events: none; } .cursor { position: fixed; left: 0; top: 0; z-index: 9999; width: 32px; height: 32px; border: 1px solid rgba(241, 238, 230, 0.62); border-radius: 50%; pointer-events: none; opacity: 0; transform: translate3d(-50%, -50%, 0); mix-blend-mode: difference; transition: width 0.22s var(--ease), height 0.22s var(--ease), opacity 0.22s, background 0.22s var(--ease); } .cursor::after { content: ""; position: absolute; left: 50%; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: #fff; transform: translate(-50%, -50%); } .cursor.is-visible { opacity: 1; } .cursor.is-active { width: 52px; height: 52px; background: rgba(255, 255, 255, 0.11); } .site-header { position: fixed; inset: 0 0 auto; z-index: 1000; height: var(--header-h); display: flex; align-items: center; transition: height 0.35s var(--ease), background 0.35s var(--ease), border-color 0.35s var(--ease), backdrop-filter 0.35s var(--ease); } .site-header.is-scrolled { height: 68px; border-bottom: 1px solid var(--line); background: rgba(7, 7, 6, 0.74); backdrop-filter: blur(18px) saturate(130%); } .header__inner { position: relative; z-index: 2; width: var(--shell); margin-inline: auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; } .brand { display: inline-flex; width: max-content; align-items: center; gap: 11px; font-family: var(--display); font-size: 1.55rem; font-weight: 900; line-height: 0.9; letter-spacing: 0; } .brand__mark { display: grid; width: 29px; height: 29px; place-items: center; background: var(--hot); color: #fff; font-size: 1rem; transition: transform 0.45s var(--ease-out); } .brand:hover .brand__mark, .brand:focus-visible .brand__mark { transform: rotate(90deg); } .primary-nav { display: flex; align-items: center; justify-content: center; gap: 34px; } .primary-nav a { position: relative; padding: 14px 0; color: rgba(241, 238, 230, 0.72); font-family: var(--mono); font-size: 0.76rem; font-weight: 600; letter-spacing: 0; transition: color 0.28s var(--ease); } .primary-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 1px; background: var(--hot-2); transform: scaleX(0); transform-origin: right; transition: transform 0.34s var(--ease); } .primary-nav a:hover, .primary-nav a:focus-visible, .primary-nav a[aria-current="true"] { color: var(--paper); } .primary-nav a:hover::after, .primary-nav a:focus-visible::after, .primary-nav a[aria-current="true"]::after { transform: scaleX(1); transform-origin: left; } .header__contact { justify-self: end; display: inline-flex; align-items: center; gap: 9px; min-height: 42px; padding: 0 14px; border: 1px solid var(--line); border-radius: 4px; color: var(--paper); font-family: var(--mono); font-size: 0.72rem; font-weight: 600; letter-spacing: 0; transition: background 0.3s var(--ease), border-color 0.3s var(--ease); } .header__contact svg, .menu-toggle svg { width: 17px; height: 17px; } .header__contact:hover, .header__contact:focus-visible { border-color: var(--hot-2); background: rgba(240, 79, 47, 0.16); } .menu-toggle { display: none; justify-self: end; width: 44px; height: 44px; place-items: center; border: 1px solid var(--line); border-radius: 4px; background: rgba(7, 7, 6, 0.28); cursor: pointer; } .scroll-progress { position: absolute; left: 0; bottom: 0; width: var(--page-progress, 0%); height: 1px; background: var(--hot-2); box-shadow: 0 0 14px rgba(255, 114, 76, 0.46); } .mobile-panel { position: fixed; inset: 0; z-index: 900; display: grid; align-content: space-between; padding: 120px 5vw 32px; background: var(--ink); transform: translateY(-102%); transition: transform 0.55s var(--ease-out); } .mobile-panel.is-open { transform: translateY(0); } .mobile-panel nav { display: grid; } .mobile-panel a { display: grid; grid-template-columns: 48px 1fr; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); font-family: var(--display); font-size: 3.2rem; font-weight: 800; line-height: 0.95; } .mobile-panel a span { color: var(--muted); font-family: var(--mono); font-size: 0.72rem; } .mobile-panel p { max-width: 340px; margin: 0; color: var(--muted); font-size: 0.9rem; } .hero { min-height: 86svh; display: grid; align-items: end; padding: calc(var(--header-h) + 76px) 0 54px; overflow: hidden; } .hero__media { position: absolute; inset: 0; z-index: -3; } .hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 68% 50%; opacity: 1; filter: brightness(1.28) saturate(1.08); } .hero__shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(7, 7, 6, 0.93), rgba(7, 7, 6, 0.56) 46%, rgba(7, 7, 6, 0.12) 100%), linear-gradient(180deg, rgba(7, 7, 6, 0.06), var(--ink) 96%); } .hero__inner { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.72fr); align-items: end; gap: 54px; } .hero__copy { max-width: 790px; } .hero h1 { margin: 0; max-width: 820px; font-family: var(--display); font-size: 6.7rem; font-weight: 900; line-height: 0.88; letter-spacing: 0; text-transform: uppercase; } .hero__lead { max-width: 650px; margin: 28px 0 0; color: var(--paper-2); font-size: 1.12rem; word-break: keep-all; } .hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; } .hero__console { border: 1px solid var(--line-strong); border-radius: 6px; background: rgba(7, 7, 6, 0.58); box-shadow: 0 24px 70px rgba(0, 0, 0, 0.35); backdrop-filter: blur(16px) saturate(120%); overflow: hidden; } .console__top { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--line); font-family: var(--mono); font-size: 0.72rem; color: var(--muted); } .console__top strong { color: var(--signal); } .signal-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); } .signal-grid span { min-height: 58px; display: flex; align-items: center; padding: 14px 16px; background: rgba(7, 7, 6, 0.74); color: var(--paper-2); font-size: 0.87rem; font-weight: 700; } .hero__console img { width: 100%; height: 230px; object-fit: cover; object-position: center; border-top: 1px solid var(--line); } .ticker { overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--hot); color: #fff; } .ticker__track { display: flex; width: max-content; animation: tickerMove 32s linear infinite; } .ticker span { padding: 14px 34px; font-family: var(--mono); font-size: 0.78rem; font-weight: 600; letter-spacing: 0; white-space: nowrap; text-transform: uppercase; } @keyframes tickerMove { from { transform: translateX(0); } to { transform: translateX(-50%); } } .about { padding: 122px 0 96px; } .about__grid { display: grid; grid-template-columns: 0.92fr 1fr; gap: 80px; align-items: start; } .section-heading h2, .intro-band h2, .election-spotlight h2, .case-lab h2, .sports-system h2, .contact h2 { margin: 0; font-family: var(--display); font-size: 4.6rem; font-weight: 900; line-height: 0.96; letter-spacing: 0; text-transform: uppercase; word-break: keep-all; } .section-heading--wide { max-width: 920px; } .about__body p, .intro-band__copy p, .election-spotlight__copy p, .case-lab__head > p, .contact__copy p { margin: 0; color: var(--paper-2); font-size: 1.06rem; word-break: keep-all; } .value-strip { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 34px; border: 1px solid var(--line); } .value-strip strong { min-height: 98px; display: grid; place-items: center; padding: 18px; border-right: 1px solid var(--line); color: var(--signal); font-family: var(--display); font-size: 1.7rem; line-height: 0.96; text-align: center; } .value-strip strong:last-child { border-right: 0; } .mission-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 72px; } .mission-panel { min-height: 300px; padding: 32px; border: 1px solid var(--line); border-radius: 6px; background: rgba(255, 255, 255, 0.035); } .mission-panel span { color: var(--hot-2); font-family: var(--mono); font-size: 0.78rem; font-weight: 600; } .mission-panel h3 { max-width: 520px; margin: 54px 0 18px; font-size: 1.65rem; line-height: 1.24; word-break: keep-all; } .mission-panel p { margin: 0; color: var(--muted); word-break: keep-all; } .mission-panel--accent { background: var(--paper); color: var(--ink); } .mission-panel--accent p { color: #4a453d; } .intro-band { padding: 96px 0; background: var(--paper); color: var(--ink); overflow: hidden; } .intro-band__grid { display: grid; grid-template-columns: 0.78fr 1fr; gap: 70px; align-items: center; } .intro-band__image { position: relative; min-height: 420px; display: grid; place-items: center; border: 1px solid rgba(7, 7, 6, 0.18); border-radius: 6px; background: linear-gradient(90deg, rgba(7, 7, 6, 0.07) 1px, transparent 1px) 0 0 / 48px 48px, linear-gradient(180deg, rgba(7, 7, 6, 0.07) 1px, transparent 1px) 0 0 / 48px 48px, #e8e3d8; } .intro-band__image img { width: min(78%, 430px); } .intro-band .eyebrow, .intro-band__copy p { color: #585247; } .profile-list { display: grid; gap: 1px; margin: 34px 0 0; background: rgba(7, 7, 6, 0.16); } .profile-list div { display: grid; grid-template-columns: 150px 1fr; gap: 24px; padding: 18px 0; background: var(--paper); } .profile-list dt { color: var(--hot); font-weight: 900; } .profile-list dd { margin: 0; color: #302d28; } .clients { padding: 116px 0 104px; } .logo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 44px; background: var(--line); border: 1px solid var(--line); } .logo-grid figure { min-height: 116px; display: grid; place-items: center; margin: 0; padding: 22px; background: var(--paper); } .logo-grid img { max-width: 82%; max-height: 58px; object-fit: contain; } .services { padding: 116px 0; background: var(--ink-2); } .service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 52px; background: var(--line); border: 1px solid var(--line); } .service-card { min-height: 300px; padding: 28px; background: var(--ink-2); transition: background 0.35s var(--ease), transform 0.35s var(--ease); } .service-card:hover { background: var(--ink-3); transform: translateY(-4px); } .service-card span { color: var(--hot-2); font-family: var(--mono); font-size: 0.78rem; font-weight: 600; } .service-card h3 { margin: 82px 0 16px; font-size: 1.45rem; line-height: 1.28; word-break: keep-all; } .service-card p { margin: 0; color: var(--muted); word-break: keep-all; } .election-spotlight { padding: 118px 0; background: linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px) 0 0 / 72px 72px, linear-gradient(180deg, rgba(255, 255, 255, 0.024) 1px, transparent 1px) 0 0 / 72px 72px, #10100d; overflow: hidden; } .election-spotlight__grid { display: grid; grid-template-columns: minmax(0, 0.72fr) minmax(580px, 1.12fr); gap: 48px; align-items: center; } .election-spotlight__copy { max-width: 650px; } .election-spotlight__copy strong { color: var(--signal); font-family: var(--mono); font-size: 0.92em; } .election-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-top: 34px; border: 1px solid var(--line); background: var(--line); } .election-metrics div { min-height: 116px; display: grid; align-content: space-between; gap: 16px; padding: 20px; background: rgba(7, 7, 6, 0.42); } .election-metrics strong { color: var(--paper); font-family: var(--display); font-size: 2.8rem; line-height: 0.9; text-transform: uppercase; } .election-metrics span { color: var(--muted); font-family: var(--mono); font-size: 0.7rem; font-weight: 600; text-transform: uppercase; } .election-spotlight__media { display: grid; gap: 14px; } .election-showcase { position: relative; margin: 0; border: 1px solid rgba(241, 238, 230, 0.14); border-radius: 6px; background: #050505; overflow: hidden; box-shadow: 0 32px 100px rgba(0, 0, 0, 0.42), 0 0 0 1px rgba(200, 255, 73, 0.04); } .election-showcase img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; } .station-strip { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; margin-top: 48px; border: 1px solid var(--line); background: var(--line); } .station-strip span { min-height: 64px; display: grid; place-items: center; background: rgba(7, 7, 6, 0.55); color: var(--paper-2); font-family: var(--mono); font-size: 0.78rem; font-weight: 600; letter-spacing: 0; } .case-lab { padding: 122px 0; } .case-lab__head { display: grid; grid-template-columns: 1fr minmax(260px, 420px); gap: 42px; align-items: end; } .case-lab__grid { display: grid; grid-template-columns: 310px 1fr; gap: 28px; margin-top: 52px; } .case-tabs { display: grid; align-self: start; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; } .case-tabs button { display: grid; grid-template-columns: 26px 1fr; align-items: center; gap: 12px; min-height: 64px; padding: 0 18px; border: 0; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, 0.03); color: var(--muted); cursor: pointer; text-align: left; font-weight: 800; letter-spacing: 0; transition: background 0.28s var(--ease), color 0.28s var(--ease), padding-left 0.28s var(--ease); } .case-tabs button:last-child { border-bottom: 0; } .case-tabs svg { width: 19px; height: 19px; stroke-width: 2; } .case-tabs button:hover, .case-tabs button:focus-visible, .case-tabs button.is-active { padding-left: 24px; background: var(--paper); color: var(--ink); } .case-stage { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(330px, 0.62fr); min-height: 640px; border: 1px solid var(--line); border-radius: 6px; background: rgba(255, 255, 255, 0.035); overflow: hidden; } .case-stage__media { position: relative; min-height: 420px; display: grid; background: #050505; } .case-stage__media > img { width: 100%; height: 100%; object-fit: contain; object-position: center; } .case-stage__thumbs { position: absolute; left: 18px; right: 18px; bottom: 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; } .case-stage__thumbs button { padding: 0; border: 1px solid rgba(241, 238, 230, 0.34); border-radius: 4px; background: #050505; cursor: pointer; overflow: hidden; opacity: 0.72; transition: opacity 0.24s var(--ease), border-color 0.24s var(--ease), transform 0.24s var(--ease); } .case-stage__thumbs button.is-active, .case-stage__thumbs button:hover, .case-stage__thumbs button:focus-visible { opacity: 1; border-color: var(--signal); transform: translateY(-2px); } .case-stage__thumbs img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; } .case-stage__copy { display: flex; flex-direction: column; justify-content: end; padding: 38px; } .case-stage__kicker { margin: 0 0 18px; color: var(--hot-2); font-family: var(--mono); font-size: 0.78rem; font-weight: 600; } .case-stage h3 { margin: 0; font-size: 2rem; line-height: 1.22; word-break: keep-all; } .case-stage__copy > p:not(.case-stage__kicker) { margin: 18px 0 0; color: var(--paper-2); word-break: keep-all; } .case-stage ul { display: grid; gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; } .case-stage li { position: relative; padding-left: 18px; color: var(--muted); word-break: keep-all; } .case-stage li::before { content: ""; position: absolute; left: 0; top: 0.72em; width: 6px; height: 6px; background: var(--signal); } .sports-system { min-height: 760px; display: grid; align-items: end; padding: 120px 0 90px; overflow: hidden; } .sports-system__image { position: absolute; inset: 0; z-index: -2; } .sports-system__image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.48; } .sports-system::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--ink) 0%, rgba(7, 7, 6, 0.86) 42%, rgba(7, 7, 6, 0.3) 100%), linear-gradient(180deg, rgba(7, 7, 6, 0.1), var(--ink) 100%); } .sports-system__content { display: grid; grid-template-columns: 0.9fr 1fr; gap: 62px; align-items: end; } .system-list { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--line); background: rgba(7, 7, 6, 0.54); backdrop-filter: blur(10px); } .system-list div { min-height: 130px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); } .system-list div:nth-child(2n) { border-right: 0; } .system-list div:nth-last-child(-n + 2) { border-bottom: 0; } .system-list strong { color: var(--cyan); font-family: var(--display); font-size: 1.65rem; line-height: 0.95; } .system-list span { color: var(--paper-2); font-size: 0.92rem; word-break: keep-all; } .contact { padding: 112px 0; background: var(--paper); color: var(--ink); } .contact__grid { display: grid; grid-template-columns: 1fr minmax(340px, 520px); gap: 70px; align-items: end; } .contact .eyebrow, .contact__copy p { color: #5d574d; } .contact-card { display: grid; gap: 1px; margin: 0; border: 1px solid rgba(7, 7, 6, 0.14); border-radius: 6px; background: rgba(7, 7, 6, 0.14); overflow: hidden; font-style: normal; } .contact-card a, .contact-card p { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 14px; min-height: 72px; margin: 0; padding: 18px 20px; background: var(--paper); color: #211f1b; word-break: keep-all; } .contact-card svg { width: 20px; height: 20px; color: var(--hot); } .site-footer { padding: 28px 0; border-top: 1px solid var(--line); background: var(--ink); } .site-footer .shell { display: flex; align-items: center; justify-content: space-between; gap: 24px; color: var(--muted); font-family: var(--mono); font-size: 0.78rem; } .site-footer strong { color: var(--paper); font-family: var(--display); font-size: 1.6rem; } .primary-nav { gap: 26px; } .hero__subhead { max-width: 740px; margin: 14px 0 0; color: var(--signal); font-family: var(--mono); font-size: clamp(0.88rem, 1.2vw, 1.08rem); font-weight: 600; text-transform: uppercase; } .hero__proof { display: flex; flex-wrap: wrap; gap: 8px; max-width: 730px; margin-top: 24px; } .hero__proof span { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 1px solid rgba(241, 238, 230, 0.18); border-radius: 999px; background: rgba(7, 7, 6, 0.32); color: rgba(241, 238, 230, 0.82); font-family: var(--mono); font-size: 0.72rem; font-weight: 600; } .hero__metrics { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, 0.035); } .hero__metrics div { min-height: 88px; display: grid; align-content: center; gap: 4px; padding: 18px; border-right: 1px solid var(--line); } .hero__metrics div:last-child { border-right: 0; } .hero__metrics strong { color: var(--paper); font-family: var(--display); font-size: 2.05rem; line-height: 0.9; } .hero__metrics span { color: var(--muted); font-family: var(--mono); font-size: 0.68rem; font-weight: 600; text-transform: uppercase; } .hero__screen { position: relative; background: #050505; } .hero__screen::before { content: ""; position: absolute; inset: 12px; pointer-events: none; border: 1px solid rgba(200, 255, 73, 0.28); box-shadow: inset 0 0 0 1px rgba(7, 7, 6, 0.4); } .clients__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 430px); gap: 56px; align-items: end; } .client-note { margin: 0; color: var(--paper-2); word-break: keep-all; } .logo-grid figure { position: relative; background: #e7e1d6; overflow: hidden; transition: background 0.3s var(--ease), transform 0.3s var(--ease); } .logo-grid figure::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(7, 7, 6, 0.06) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(180deg, rgba(7, 7, 6, 0.06) 1px, transparent 1px) 0 0 / 28px 28px; opacity: 0; transition: opacity 0.3s var(--ease); } .logo-grid figure:hover { background: var(--paper); transform: translateY(-3px); } .logo-grid figure:hover::after { opacity: 1; } .logo-grid img { position: relative; z-index: 1; filter: grayscale(1) saturate(0) contrast(0.92); opacity: 0.72; transition: filter 0.35s var(--ease), opacity 0.35s var(--ease), transform 0.35s var(--ease); } .logo-grid figure:hover img { filter: none; opacity: 1; transform: scale(1.04); } .service-card { position: relative; display: flex; flex-direction: column; overflow: hidden; } .service-card::after { content: ""; position: absolute; inset: auto 24px 0 24px; height: 3px; background: linear-gradient(90deg, var(--hot), var(--signal)); transform: scaleX(0); transform-origin: left; transition: transform 0.34s var(--ease); } .service-card:hover::after { transform: scaleX(1); } .service-card__top { display: flex; align-items: center; justify-content: space-between; gap: 18px; } .service-card__top svg { width: 28px; height: 28px; color: rgba(241, 238, 230, 0.78); stroke-width: 1.7; } .service-card__tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: auto; padding-top: 28px; } .service-card__tags span { min-height: 28px; display: inline-flex; align-items: center; padding: 0 9px; border: 1px solid var(--line); color: var(--paper-2); font-size: 0.68rem; text-transform: uppercase; } .case-stage { box-shadow: 0 28px 90px rgba(0, 0, 0, 0.25); } .case-stage__bar { position: absolute; top: 14px; left: 14px; right: 14px; z-index: 2; display: flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 12px; border: 1px solid rgba(241, 238, 230, 0.18); border-radius: 4px; background: rgba(7, 7, 6, 0.68); backdrop-filter: blur(10px); } .case-stage__bar span { width: 7px; height: 7px; border-radius: 999px; background: var(--muted-dark); } .case-stage__bar span:first-child { background: var(--hot-2); } .case-stage__bar span:nth-child(2) { background: var(--signal); } .case-stage__bar strong { margin-left: auto; color: var(--paper-2); font-family: var(--mono); font-size: 0.68rem; font-weight: 600; } .case-stage__media > img { transition: opacity 0.18s var(--ease), transform 0.18s var(--ease); } .case-stage.is-switching .case-stage__media > img { opacity: 0.42; transform: scale(0.992); } .case-stage__meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; } .case-stage__meta span, .case-stage__chips span { display: inline-flex; align-items: center; min-height: 28px; padding: 0 9px; border: 1px solid var(--line); color: var(--paper-2); font-family: var(--mono); font-size: 0.68rem; font-weight: 600; text-transform: uppercase; } .case-stage__chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 22px; } .case-stage__chips span { border-color: rgba(200, 255, 73, 0.24); color: var(--signal); } .case-stat { display: grid; grid-template-columns: minmax(96px, 0.36fr) 1fr; gap: 18px; align-items: center; margin-top: 22px; padding: 18px; border: 1px solid var(--line); background: rgba(7, 7, 6, 0.24); } .case-stat strong { color: var(--paper); font-family: var(--display); font-size: 1.78rem; line-height: 0.95; text-transform: uppercase; } .case-stat span { color: var(--muted); font-size: 0.9rem; word-break: keep-all; } html.js .reveal { opacity: 0; transform: translateY(34px); transition: opacity 0.86s var(--ease-out), transform 0.86s var(--ease-out); } html.js .reveal.in-view { opacity: 1; transform: none; } html.js .reveal[data-delay="1"] { transition-delay: 0.08s; } html.js .reveal[data-delay="2"] { transition-delay: 0.16s; } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.001ms !important; } .cursor { display: none; } } @media (max-width: 1180px) { .hero h1 { font-size: 5.2rem; } .clients__head { grid-template-columns: 1fr; gap: 26px; } .hero__inner, .about__grid, .intro-band__grid, .election-spotlight__grid, .sports-system__content, .contact__grid { grid-template-columns: 1fr; } .election-spotlight__copy { max-width: 880px; } .hero__console { max-width: 560px; } .service-grid, .logo-grid { grid-template-columns: repeat(2, 1fr); } .case-lab__grid, .case-stage { grid-template-columns: 1fr; } .case-tabs { grid-template-columns: repeat(3, 1fr); } .case-tabs button:nth-child(3) { border-right: 0; } .case-tabs button { border-right: 1px solid var(--line); } } @media (max-width: 820px) { :root { --header-h: 70px; } body { font-size: 15px; } .primary-nav, .header__contact { display: none; } .header__inner { grid-template-columns: 1fr auto; } .menu-toggle { display: grid; } .brand { font-size: 1.35rem; } .hero { min-height: 88svh; padding: calc(var(--header-h) + 54px) 0 40px; } .hero__shade { background: linear-gradient(180deg, rgba(7, 7, 6, 0.72), rgba(7, 7, 6, 0.8) 48%, var(--ink) 100%), linear-gradient(90deg, rgba(7, 7, 6, 0.8), rgba(7, 7, 6, 0.24)); } .hero__inner { gap: 34px; } .hero h1, .section-heading h2, .intro-band h2, .election-spotlight h2, .case-lab h2, .sports-system h2, .contact h2 { font-size: 3.15rem; } .hero__lead { font-size: 1rem; } .hero__proof { margin-top: 20px; } .hero__proof span { min-height: 32px; font-size: 0.68rem; } .hero__actions { align-items: stretch; } .button { width: 100%; } .signal-grid, .mission-grid, .value-strip, .system-list, .election-metrics, .service-grid, .logo-grid { grid-template-columns: 1fr; } .station-strip { grid-template-columns: repeat(2, 1fr); } .value-strip strong, .system-list div, .system-list div:nth-child(2n), .system-list div:nth-last-child(-n + 2) { border-right: 0; border-bottom: 1px solid var(--line); } .value-strip strong:last-child, .system-list div:last-child { border-bottom: 0; } .about, .clients, .services, .election-spotlight, .case-lab, .contact { padding: 82px 0; } .intro-band { padding: 76px 0; } .intro-band__image { min-height: 300px; } .profile-list div { grid-template-columns: 1fr; gap: 6px; } .case-lab__head { grid-template-columns: 1fr; } .case-tabs { grid-template-columns: 1fr; } .case-tabs button { border-right: 0; } .case-stage { min-height: 0; } .case-stage__copy { padding: 28px; } .case-stage__bar { top: 10px; left: 10px; right: 10px; } .case-stat { grid-template-columns: 1fr; gap: 8px; } .case-stage h3 { font-size: 1.55rem; } .case-stage__thumbs { position: static; padding: 12px; background: var(--ink); } .sports-system { min-height: 0; padding: 82px 0; } .site-footer .shell { align-items: flex-start; flex-direction: column; } } @media (max-width: 520px) { .hero h1, .section-heading h2, .intro-band h2, .election-spotlight h2, .case-lab h2, .sports-system h2, .contact h2 { font-size: 2.58rem; } .hero__console { display: none; } .hero__subhead { font-size: 0.82rem; } .hero__proof { display: grid; grid-template-columns: 1fr; } .mission-panel, .service-card { padding: 24px; } .logo-grid figure { min-height: 104px; } .station-strip { grid-template-columns: 1fr; } .mobile-panel a { font-size: 2.48rem; } }