:root { --bg: #f3f4f6; --surface: #ffffff; --surface-soft: #f8fafc; --text: #111827; --muted: #5b6470; --line: #d9dde4; --line-strong: #c4cad3; --accent: #111827; --accent-soft: #eef2f6; --success: #1f6b3b; --danger: #b42318; --radius-sm: 8px; --radius-md: 12px; --radius-lg: 18px; --shadow-sm: 0 10px 24px rgba(15, 23, 42, 0.04); --shadow-md: 0 18px 40px rgba(15, 23, 42, 0.08); --container-max: 1200px; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; min-height: 100vh; background: var(--bg); color: var(--text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.65; } body.cookie-consent-locked { overflow: hidden; } a { color: var(--text); text-decoration-color: rgba(17, 24, 39, 0.35); text-underline-offset: 0.16em; } a:hover { color: #000; } img { max-width: 100%; display: block; } main { padding-bottom: 4rem; } .container { max-width: var(--container-max); } .site-header { position: sticky; top: 0; z-index: 1025; background: rgba(243, 244, 246, 0.94); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); } .navbar { padding: 0.8rem 0; } .navbar-brand { font-weight: 700; letter-spacing: -0.03em; color: var(--text); } .navbar-brand:hover { color: #000; } .nav-link { color: var(--muted); font-size: 0.95rem; padding: 0.55rem 0.75rem !important; border-radius: var(--radius-sm); transition: background-color 0.2s ease, color 0.2s ease; } .nav-link:hover, .nav-link.active { color: var(--text); background: var(--accent-soft); } .btn-refined { border-radius: 10px; padding: 0.72rem 1rem; font-size: 0.95rem; font-weight: 600; box-shadow: none; } .btn-refined:focus-visible, .nav-link:focus-visible, .link-button:focus-visible, .text-link:focus-visible, .cookie-reopen:focus-visible, .form-check-input:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid rgba(17, 24, 39, 0.18); outline-offset: 2px; } .eyebrow { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.42rem 0.72rem; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--muted); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; } .hero-section { padding: 3.4rem 0 1.5rem; } .hero-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.95fr); gap: 1rem; align-items: start; } .hero-copy h1, .legal-shell h1 { margin: 1rem 0 1.1rem; font-size: clamp(2.3rem, 4.4vw, 4.45rem); line-height: 1.05; letter-spacing: -0.045em; max-width: 14ch; } .lead { max-width: 64ch; font-size: 1.03rem; color: var(--muted); } .hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.5rem 0 1.75rem; } .hero-proof { display: grid; gap: 0.72rem; max-width: 60rem; } .proof-item { display: flex; gap: 0.72rem; align-items: start; padding: 0.82rem 0.95rem; border-radius: var(--radius-md); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-sm); } .proof-dot { width: 10px; height: 10px; border-radius: 999px; background: var(--text); margin-top: 0.45rem; flex: 0 0 10px; } .stacked-panels { display: grid; gap: 1rem; } .info-panel, .article-panel, .section-shell, .legal-shell, .channel-card, .legal-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); } .compact-panel { padding: 1rem; } .panel-heading { margin-bottom: 0.8rem; } .panel-heading h2, .info-panel h3, .article-panel h2, .channel-card__name, .legal-card h3, .section-heading h2 { margin: 0; letter-spacing: -0.03em; } .panel-heading h2 { font-size: 1.05rem; } .panel-kicker { display: inline-block; margin-bottom: 0.28rem; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); } .panel-copy, .section-heading p, .info-panel p, .channel-card p, .legal-card p, .article-panel p, .article-like p, .legal-list, .legal-lead { color: var(--muted); } .status-list { display: grid; gap: 0.75rem; } .status-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 0.72rem; border-top: 1px solid var(--line); font-size: 0.94rem; } .status-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 118px; padding: 0.34rem 0.65rem; border-radius: 999px; background: var(--accent-soft); border: 1px solid var(--line); font-size: 0.8rem; font-weight: 600; color: var(--text); } .status-pill[data-state="on"], .status-pill[data-state="locked"] { background: #eef6f0; color: var(--success); border-color: rgba(31, 107, 59, 0.18); } .status-pill[data-state="off"] { background: #fff6f5; color: var(--danger); border-color: rgba(180, 35, 24, 0.12); } .stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; } .stat-grid div { padding: 0.78rem; border-radius: var(--radius-md); border: 1px solid var(--line); background: var(--surface-soft); } .stat-grid strong { display: block; font-size: 1.05rem; line-height: 1.1; } .stat-grid span { color: var(--muted); } .stat-grid--counter div:first-child { background: linear-gradient(135deg, #111827 0%, #1f2937 100%); border-color: transparent; } .stat-grid--counter div:first-child strong, .stat-grid--counter div:first-child span { color: #fff; } .stat-grid--counter strong { font-size: clamp(1.2rem, 2vw, 1.45rem); } .panel-note { margin-top: 0.85rem; font-size: 0.84rem; color: var(--muted); } .visit-counter-panel .panel-copy { min-height: 3.5rem; font-size: 0.84rem; } .section-block { padding: 0.85rem 0; } .section-shell, .legal-shell { padding: 1.45rem; } .section-heading { margin-bottom: 1.3rem; } .section-heading.with-meta { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; } .section-heading h2 { margin-top: 0.8rem; margin-bottom: 0.72rem; font-size: clamp(1.55rem, 2vw, 2.15rem); } .section-meta { flex: 0 0 auto; padding: 0.58rem 0.82rem; border: 1px solid var(--line); background: var(--surface-soft); border-radius: var(--radius-md); font-size: 0.86rem; color: var(--muted); } .widget-card { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface-soft); } .widget-scroll { overflow-x: auto; overflow-y: hidden; padding: 0.75rem 0.75rem 0.5rem; -webkit-overflow-scrolling: touch; scrollbar-color: #9aa4b2 #e8ebf0; } .widget-scroll::-webkit-scrollbar { height: 14px; } .widget-scroll::-webkit-scrollbar-track { background: #e8ebf0; border-radius: 999px; } .widget-scroll::-webkit-scrollbar-thumb { background: #98a2b3; border-radius: 999px; border: 3px solid #e8ebf0; } .widget-scroll__inner { min-width: 860px; } .widget-scroll iframe { max-width: none; } .tvp-widget-attribution { margin: 0.55rem 0 0; color: var(--muted); font-size: 0.88rem; } .scroll-note { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; padding: 0.85rem 1rem; border-top: 1px solid var(--line); background: var(--surface); font-size: 0.92rem; color: var(--muted); } .scroll-note button { flex: 0 0 auto; background: transparent; border: none; color: var(--text); text-decoration: underline; text-underline-offset: 0.16em; padding: 0; } .content-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.9fr); gap: 1rem; } .aside-panels { display: grid; gap: 1rem; } .info-panel { padding: 1rem; } .article-panel { padding: 1.2rem; } .article-panel h2, .article-like h3 { font-size: 1.1rem; margin-bottom: 0.75rem; } .card-grid { display: grid; gap: 1rem; } .card-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .channel-card, .legal-card { padding: 1rem; } .channel-card__name { font-size: 1.02rem; margin-bottom: 0.45rem; } .keyword-cloud { display: flex; flex-wrap: wrap; gap: 0.65rem; } .keyword-pill { display: inline-flex; align-items: center; justify-content: center; padding: 0.52rem 0.8rem; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-soft); color: var(--text); font-size: 0.88rem; white-space: nowrap; } .article-like { min-height: 100%; } .ordered-steps { margin: 0; padding-left: 1.25rem; color: var(--muted); } .ordered-steps li + li { margin-top: 0.42rem; } .custom-accordion .accordion-item { border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); } .custom-accordion .accordion-item + .accordion-item { margin-top: 0.85rem; } .custom-accordion .accordion-button { background: var(--surface); color: var(--text); font-weight: 600; box-shadow: none; } .custom-accordion .accordion-button:not(.collapsed) { background: var(--surface-soft); } .custom-accordion .accordion-body { color: var(--muted); } .text-link, .link-button { display: inline-flex; align-items: center; gap: 0.35rem; font-weight: 600; color: var(--text); text-decoration: underline; text-underline-offset: 0.18em; } .link-button { padding: 0; border: none; background: transparent; } .legal-body .site-main { padding-top: 0.6rem; } .legal-hero { padding: 2rem 0 0.8rem; } .legal-shell h1 { max-width: none; } .legal-lead { max-width: 70ch; } .breadcrumb-wrap { font-size: 0.88rem; } .breadcrumb { margin: 0; } .legal-grid { grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.8fr); } .legal-list { padding-left: 1.2rem; } .legal-list li + li { margin-top: 0.42rem; } .legal-table { margin-bottom: 0; } .legal-table th { font-size: 0.88rem; color: var(--muted); font-weight: 600; } .site-footer { padding: 1.2rem 0 2rem; border-top: 1px solid var(--line); } .footer-grid { display: grid; grid-template-columns: 1.25fr 0.9fr 0.9fr 0.9fr; gap: 1rem; } .footer-brand, .footer-title { font-weight: 700; letter-spacing: -0.02em; } .footer-copy, .footer-links a { color: var(--muted); font-size: 0.95rem; } .footer-links li + li { margin-top: 0.42rem; } .cookie-floating { position: fixed; left: 1rem; bottom: 1rem; z-index: 1050; } .cookie-reopen { display: inline-flex; align-items: center; gap: 0.62rem; padding: 0.78rem 1rem; border-radius: 999px; border: 1px solid rgba(17, 24, 39, 0.08); background: var(--accent); color: #fff; font-size: 0.9rem; font-weight: 600; box-shadow: var(--shadow-md); } .cookie-reopen:hover { background: #000; } .cookie-reopen__dot { width: 10px; height: 10px; border-radius: 999px; background: #dff0d8; } .cookie-overlay { position: fixed; inset: 0; z-index: 1085; background: rgba(17, 24, 39, 0.58); backdrop-filter: blur(6px); } .cookie-banner { position: fixed; right: 1rem; bottom: 1rem; z-index: 1095; width: min(480px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); overflow-y: auto; padding: 1rem; border-radius: 20px; border: 1px solid var(--line-strong); background: rgba(255, 255, 255, 0.98); box-shadow: var(--shadow-md); } .cookie-banner--modal { top: 50%; right: auto; bottom: auto; left: 50%; width: min(520px, calc(100vw - 2rem)); transform: translate(-50%, -50%); } .cookie-banner[hidden] { display: none !important; } .cookie-banner__eyebrow { font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); } .cookie-banner__title { margin: 0; font-size: 1.2rem; letter-spacing: -0.03em; } .cookie-banner__intro { margin: 0.75rem 0 1rem; color: var(--muted); font-size: 0.94rem; } .cookie-banner__toggles { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } .cookie-switch-row { display: flex; justify-content: space-between; gap: 1rem; padding: 0.85rem 0; } .cookie-switch-row + .cookie-switch-row { border-top: 1px solid var(--line); } .cookie-switch-row p { margin: 0.2rem 0 0; color: var(--muted); font-size: 0.86rem; } .cookie-switch-label { font-weight: 600; } .form-check-input { width: 3rem; height: 1.6rem; margin: 0; cursor: pointer; } .form-check-input:checked { background-color: var(--accent); border-color: var(--accent); } .form-check-input:focus { box-shadow: 0 0 0 0.2rem rgba(17, 24, 39, 0.12); } .cookie-banner__actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 1rem; } .cookie-banner__links { display: flex; gap: 0.5rem; align-items: center; margin-top: 0.8rem; font-size: 0.88rem; color: var(--muted); } .toast-stack { position: fixed; top: 1rem; right: 1rem; z-index: 1080; display: grid; gap: 0.6rem; } .app-toast { min-width: 260px; max-width: 360px; padding: 0.82rem 0.95rem; border-radius: var(--radius-md); border: 1px solid rgba(17, 24, 39, 0.08); background: rgba(17, 24, 39, 0.96); color: #fff; box-shadow: var(--shadow-md); opacity: 0; transform: translateY(-6px); transition: opacity 0.2s ease, transform 0.2s ease; } .app-toast.is-visible { opacity: 1; transform: translateY(0); } [hidden] { display: none !important; } @media (max-width: 1199px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 991px) { .hero-grid, .content-grid, .legal-grid, .card-grid--three { grid-template-columns: 1fr; } .section-heading.with-meta { flex-direction: column; } .widget-scroll__inner { min-width: 780px; } } @media (max-width: 767px) { .hero-section { padding-top: 2.4rem; } .section-shell, .legal-shell, .info-panel, .article-panel, .channel-card, .legal-card { padding: 1rem; } .stat-grid { grid-template-columns: 1fr; } .widget-scroll__inner { min-width: 700px; } .cookie-banner { width: calc(100vw - 1rem); right: 0.5rem; bottom: 0.5rem; } .cookie-banner.cookie-banner--modal { top: 50%; right: auto; bottom: auto; left: 50%; width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); transform: translate(-50%, -50%); } .cookie-floating { left: 0.5rem; bottom: 0.5rem; } .scroll-note { flex-direction: column; } } @media (max-width: 575px) { .navbar { padding: 0.65rem 0; } .hero-copy h1, .legal-shell h1 { max-width: none; font-size: clamp(2rem, 11vw, 2.85rem); } .lead { font-size: 0.98rem; } .widget-scroll__inner { min-width: 640px; } .footer-grid { grid-template-columns: 1fr; } .cookie-banner__actions { flex-direction: column; } .cookie-banner__actions .btn { width: 100%; } }