Q1 V2
⚠️ Custom Options Not Displayed in Shop App ⚠️The 6-Slot Color Selector is not visible here. To customize visually, tap the button < 🔗 Visit Ant Design > to switch to our website.I MPORTANT: If you select "6 x Custom Colors (Select Below)" here, please leave a note at checkout with your Color Choices and Installation Preference. /* ========== ROOT (scoped) ========== */ .q1s-wrap { --q1s-paper: #f0efeb; --q1s-paper-2: #e6e4dd; --q1s-surface: #ffffff; --q1s-ink: #171717; --q1s-ink-soft: #52514d; --q1s-ink-mute: #8a877e; --q1s-rule: #d5d1c5; --q1s-rule-strong: #b8b3a4; --q1s-accent: #2d3e2e; --q1s-accent-2: #1f2b20; --q1s-accent-soft: #d9dfd3; --q1s-accent-wash: #edf0ea; --q1s-signal: #b45309; --q1s-warn: #b45309; --q1s-radius: 4px; --q1s-radius-lg: 10px; max-width: 936px; margin: 0 auto; padding: 0; background: var(--q1s-paper); color: var(--q1s-ink); font-family: 'Hanken Grotesk', system-ui, -apple-system, sans-serif; font-size: 16.5px; line-height: 1.65; letter-spacing: -0.005em; overflow: hidden; border-radius: var(--q1s-radius-lg); font-feature-settings: "tnum" 0, "ss01" 1; } .q1s-wrap *, .q1s-wrap *::before, .q1s-wrap *::after { box-sizing: border-box; } .q1s-wrap img { max-width: 100%; display: block; } .q1s-wrap h1, .q1s-wrap h2, .q1s-wrap h3, .q1s-wrap h4, .q1s-wrap p { margin: 0; padding: 0; color: inherit; } .q1s-wrap button { font-family: inherit; cursor: pointer; } .q1s-wrap em { font-style: normal; font-weight: 800; color: var(--q1s-accent); } .q1s-mono { font-family: 'JetBrains Mono', ui-monospace, monospace; letter-spacing: 0; font-variant-numeric: tabular-nums; } .q1s-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 500; color: var(--q1s-accent); text-transform: uppercase; letter-spacing: 0.22em; } .q1s-eyebrow::before { content: ''; width: 24px; height: 1px; background: var(--q1s-accent); } /* ========== CTA ========== */ .q1s-cta { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 17px 34px; border: none; border-radius: 2px; background: var(--q1s-accent); color: #fff; font-family: 'Hanken Grotesk', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.25s ease; } .q1s-cta:hover { background: var(--q1s-accent-2); transform: translateY(-1px); box-shadow: 0 8px 20px -8px rgba(45, 62, 46, 0.5); } .q1s-cta-arrow { transition: transform 0.3s ease; display: inline-block; font-family: 'JetBrains Mono', monospace; font-weight: 400; } .q1s-cta:hover .q1s-cta-arrow { transform: translateX(4px); } /* ========== HERO ========== */ .q1s-hero { position: relative; padding: 20px 40px 20px; text-align: center; background: var(--q1s-paper); border-bottom: 1px solid var(--q1s-rule); overflow: hidden; } .q1s-hero::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(var(--q1s-rule) 1px, transparent 1px), linear-gradient(90deg, var(--q1s-rule) 1px, transparent 1px); background-size: 36px 36px; background-position: 50% 50%; opacity: 0.35; pointer-events: none; } .q1s-hero-content { position: relative; z-index: 2; } .q1s-hero h1 { font-family: 'Hanken Grotesk', sans-serif; font-size: clamp(28px, 5.5vw, 54px); font-weight: 800; line-height: 0.96; letter-spacing: -0.04em; margin-bottom: 20px; color: var(--q1s-ink); } .q1s-hero h1 em { color: var(--q1s-accent); font-weight: 800; } .q1s-hero-sub { max-width: 560px; margin: 0 auto 40px; font-size: 17px; line-height: 1.6; color: var(--q1s-ink-soft); } /* Hero technical diagram */ .q1s-hero-visual { position: relative; width: min(480px, 90%); aspect-ratio: 2.2/1; margin: 40px auto 24px; } .q1s-hero-disc { position: absolute; top: 50%; width: 116px; height: 116px; border-radius: 50%; background: radial-gradient(circle at 32% 28%, #d8d3c8 0%, #9a9588 45%, #4a473f 100%); border: 1px solid rgba(0,0,0,0.12); box-shadow: inset 0 2px 8px rgba(255,255,255,0.3), inset 0 -8px 18px rgba(0,0,0,0.25), 0 14px 30px -10px rgba(30, 30, 25, 0.25); transform: translateY(-50%); } .q1s-hero-disc::after { content: ''; position: absolute; inset: 30%; border-radius: 50%; background: radial-gradient(circle, #171717 50%, #2d2d2a); box-shadow: inset 0 2px 4px rgba(0,0,0,0.8); } .q1s-hero-disc-left { left: 8%; animation: q1s-drift-l 6s ease-in-out infinite; } .q1s-hero-disc-right { right: 8%; animation: q1s-drift-r 6s ease-in-out infinite; } .q1s-hero-arrows { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-family: 'JetBrains Mono', monospace; font-size: 22px; font-weight: 500; color: var(--q1s-accent); letter-spacing: 0; display: flex; align-items: center; gap: 8px; } .q1s-hero-callout { position: absolute; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--q1s-accent); text-transform: uppercase; letter-spacing: 0.15em; font-weight: 500; } .q1s-hero-callout-tl { top: 6%; left: 4%; } .q1s-hero-callout-tl::after { content: ''; position: absolute; top: 100%; left: 14px; width: 1px; height: 28px; background: var(--q1s-accent); opacity: 0.5; } .q1s-hero-callout-br { bottom: 6%; right: 4%; text-align: right; } .q1s-hero-callout-br::before { content: ''; position: absolute; bottom: 100%; right: 14px; width: 1px; height: 28px; background: var(--q1s-accent); opacity: 0.5; } .q1s-hero-caption { position: absolute; bottom: -8px; left: 0; right: 0; text-align: center; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--q1s-ink-mute); letter-spacing: 0.18em; text-transform: uppercase; } .q1s-hero-price-row { display: flex; align-items: center; justify-content: center; gap: 24px; margin-bottom: 36px; flex-wrap: wrap; } .q1s-hero-price { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--q1s-ink-mute); letter-spacing: 0.14em; text-transform: uppercase; } .q1s-hero-price strong { color: var(--q1s-ink); font-family: 'Hanken Grotesk', sans-serif; font-size: 26px; font-weight: 700; margin-left: 10px; letter-spacing: -0.02em; text-transform: none; } .q1s-hero-trust { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--q1s-rule); display: flex; justify-content: center; flex-wrap: wrap; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--q1s-ink-mute); letter-spacing: 0.18em; text-transform: uppercase; } .q1s-hero-trust span { padding: 0 22px; border-left: 1px solid var(--q1s-rule); } .q1s-hero-trust span:first-child { border-left: 0; } /* ========== BENEFIT BAR ========== */ .q1s-benefits { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--q1s-rule); background: var(--q1s-surface); } .q1s-benefit { padding: 40px 16px 36px; text-align: center; border-right: 1px solid var(--q1s-rule); position: relative; } .q1s-benefit:last-child { border-right: 0; } .q1s-benefit-num { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: 44px; color: var(--q1s-ink); line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; display: flex; align-items: center; justify-content: center; min-height: 44px; } .q1s-benefit-num-text { font-size: 26px; letter-spacing: -0.01em; } .q1s-benefit-num span { color: var(--q1s-accent); font-size: 20px; font-family: 'JetBrains Mono', monospace; font-weight: 500; margin-left: 3px; letter-spacing: 0; } .q1s-benefit-lbl { margin-top: 14px; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--q1s-ink-mute); text-transform: uppercase; letter-spacing: 0.2em; } /* ========== TRADE-OFF / HOOK ========== */ .q1s-hook { padding: 20px 40px 20px; text-align: center; border-bottom: 1px solid var(--q1s-rule); } .q1s-hook-title { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(34px, 5.5vw, 54px); line-height: 1.02; letter-spacing: -0.035em; margin: 24px auto 24px; max-width: 720px; color: var(--q1s-ink); } .q1s-hook-body { max-width: 580px; margin: 0 auto; color: var(--q1s-ink-soft); font-size: 16.5px; line-height: 1.7; } .q1s-problem-grid { margin-top: 60px; margin-left: -30px; margin-right: -30px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; text-align: left; border-top: 1px solid var(--q1s-rule); border-bottom: 1px solid var(--q1s-rule); } .q1s-problem:last-child { border-right: 0; } /* ========== HOW IT WORKS ========== */ .q1s-how { padding: 5px 40px; background: var(--q1s-paper-2); border-bottom: 1px solid var(--q1s-rule); } .q1s-how-head { text-align: center; margin-bottom: 28px; } .q1s-how-title { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(34px, 5.5vw, 52px); line-height: 1; letter-spacing: -0.035em; margin-top: 18px; color: var(--q1s-ink); } .q1s-how-steps { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0; position: relative; } .q1s-how-steps::before { content: ''; position: absolute; top: 22px; left: 16%; right: 16%; height: 1px; background: repeating-linear-gradient(90deg, var(--q1s-rule-strong) 0 6px, transparent 6px 12px); z-index: 0; } .q1s-step { text-align: center; padding: 0 16px; position: relative; z-index: 1; } .q1s-step-num { width: 44px; height: 44px; margin: 0 auto 18px; border: 1px solid var(--q1s-rule-strong); border-radius: 50%; background: var(--q1s-paper); display: grid; place-items: center; font-family: 'JetBrains Mono', monospace; font-weight: 500; font-size: 11px; color: var(--q1s-accent); position: relative; letter-spacing: 0.05em; } .q1s-step h4 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 700; font-size: 20px; margin-bottom: 12px; letter-spacing: -0.015em; color: var(--q1s-ink); } .q1s-step p { font-size: 14px; color: var(--q1s-ink-soft); line-height: 1.65; } /* ========== SCENES ========== */ .q1s-scenes { padding: 5px 5px; border-bottom: 1px solid var(--q1s-rule); } .q1s-scenes-head { text-align: center; margin-bottom: 22px; } .q1s-scenes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; } .q1s-scene { position: relative; aspect-ratio: 3/4; border-radius: var(--q1s-radius); overflow: hidden; background: var(--q1s-paper-2); transition: transform 0.4s ease; } .q1s-scene:hover { transform: translateY(-4px); } .q1s-scene-bg { position: absolute; inset: 0; background-size: cover; background-position: center; } .q1s-scene-1 .q1s-scene-bg { background-image: url('https://cdn.shopify.com/s/files/1/0882/6139/4743/files/983A6831.jpg?v=1777048228'); background-size: cover; background-position: center; } .q1s-scene-2 .q1s-scene-bg { background-image: url('https://cdn.shopify.com/s/files/1/0882/6139/4743/files/IMG_0023.jpg?v=1777048227'); background-size: cover; background-position: center; } .q1s-scene-3 .q1s-scene-bg { background-image: url('https://cdn.shopify.com/s/files/1/0882/6139/4743/files/IMG_00223.jpg?v=1777048226'); background-size: cover; background-position: center; } .q1s-scene-grad { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(0, 0, 0, 0.7) 100%); } .q1s-scene-tag { position: absolute; top: 20px; left: 22px; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: rgba(255,255,255,0.9); letter-spacing: 0.22em; text-transform: uppercase; font-weight: 500; } .q1s-scene-caption { position: absolute; left: 22px; right: 22px; bottom: 24px; color: #fff; } .q1s-scene-caption h4 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 700; font-size: 22px; margin-bottom: 8px; letter-spacing: -0.015em; } .q1s-scene-caption p { font-size: 13.5px; color: rgba(255,255,255,0.85); line-height: 1.5; } /* ========== FEATURES ========== */ .q1s-features { border-bottom: 1px solid var(--q1s-rule); } .q1s-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; border-bottom: 1px solid var(--q1s-rule); } .q1s-feature:last-child { border-bottom: 0; } .q1s-feature-reverse .q1s-feature-text { order: 2; text-align: right; } .q1s-feature-reverse .q1s-feature-visual { order: 1; } .q1s-feature-text { padding: 20px 5px; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid var(--q1s-rule); background: var(--q1s-surface); position: relative; } .q1s-feature-reverse .q1s-feature-text { border-right: 0; border-left: 1px solid var(--q1s-rule); } .q1s-feature-text h3 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(28px, 4vw, 38px); line-height: 1.02; letter-spacing: -0.035em; margin: 16px 0 20px; color: var(--q1s-ink); } .q1s-feature-text h3 em { color: var(--q1s-accent); } .q1s-feature-text p { color: var(--q1s-ink-soft); font-size: 15.5px; line-height: 1.7; } .q1s-feature-text ul { list-style: none; padding: 0; margin: 28px 0 0; } .q1s-feature-text li { padding: 14px 0; position: relative; font-size: 14px; color: var(--q1s-ink-soft); border-top: 1px solid var(--q1s-rule); line-height: 1.55; } .q1s-feature-text li:first-child { border-top: 0; } .q1s-feature-visual { position: relative; line-height: 0; aspect-ratio: 4 / 5; background: var(--q1s-paper-2); overflow: hidden; display: grid; place-items: center; } .q1s-feature-visual::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(45, 62, 46, 0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(45, 62, 46, 0.07) 1px, transparent 1px); background-size: 32px 32px; } .q1s-feature-visual::after { content: ''; position: absolute; top: 18px; right: 22px; width: 10px; height: 10px; border-top: 1px solid var(--q1s-rule-strong); border-right: 1px solid var(--q1s-rule-strong); } /* Visual: Magnetic lock */ .q1s-vis-lock { position: relative; width: 260px; height: 88px; z-index: 1; } .q1s-vis-lock-side { position: absolute; top: 50%; transform: translateY(-50%); width: 100px; height: 76px; border: 1px solid var(--q1s-rule-strong); background: linear-gradient(180deg, #fff, #e8e5de); border-radius: 6px; box-shadow: 0 4px 10px -4px rgba(30,30,25,0.15); } .q1s-vis-lock-left { left: 0; animation: q1s-slide-r 3s ease-in-out infinite; } .q1s-vis-lock-right { right: 0; animation: q1s-slide-l 3s ease-in-out infinite; } .q1s-vis-lock-core { position: absolute; top: 50%; left: 50%; width: 28px; height: 28px; border-radius: 50%; background: var(--q1s-accent); transform: translate(-50%, -50%); box-shadow: 0 0 0 6px var(--q1s-accent-soft); opacity: 0; animation: q1s-core 3s ease-in-out infinite; } /* Visual: Load */ .q1s-vis-load { text-align: center; position: relative; z-index: 1; padding: 20px; } .q1s-vis-load-num { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: 96px; line-height: 1; color: var(--q1s-ink); letter-spacing: -0.05em; font-variant-numeric: tabular-nums; } .q1s-vis-load-num em { font-family: 'JetBrains Mono', monospace; font-weight: 500; color: var(--q1s-accent); font-size: 28px; vertical-align: top; margin-left: 8px; letter-spacing: 0; } .q1s-vis-load-bar { width: 240px; height: 3px; margin: 28px auto 12px; background: var(--q1s-rule-strong); position: relative; } .q1s-vis-load-bar::after { content: ''; position: absolute; left: 0; top: -1px; bottom: -1px; width: 47%; background: var(--q1s-accent); animation: q1s-bar 2.4s ease-out forwards; } .q1s-vis-load-bar::before { content: ''; position: absolute; left: 47%; top: -3px; width: 1px; height: 9px; background: var(--q1s-signal); opacity: 0; animation: q1s-bar-mark 2.4s ease-out forwards; } .q1s-vis-load-scale { display: flex; justify-content: space-between; width: 240px; margin: 0 auto; font-family: 'JetBrains Mono', monospace; font-size: 9.5px; color: var(--q1s-ink-mute); letter-spacing: 0.08em; text-transform: uppercase; } .q1s-vis-load-scale span:nth-child(2) { color: var(--q1s-accent); font-weight: 600; } /* Visual: Weight */ .q1s-vis-weight { width: 100%; padding: 48px; z-index: 1; position: relative; } .q1s-weight-row { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px dashed var(--q1s-rule-strong); } .q1s-weight-row:last-child { border-bottom: 0; } .q1s-weight-mat { width: 110px; font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--q1s-ink-soft); text-transform: uppercase; letter-spacing: 0.14em; } .q1s-weight-track { flex: 1; height: 2px; background: var(--q1s-rule-strong); position: relative; } .q1s-weight-fill { position: absolute; left: 0; top: -1px; bottom: -1px; background: var(--q1s-accent); } .q1s-weight-val { min-width: 56px; text-align: right; font-family: 'Hanken Grotesk', sans-serif; font-weight: 700; font-size: 17px; color: var(--q1s-ink); letter-spacing: -0.015em; font-variant-numeric: tabular-nums; } /* Visual: 360 rotation */ .q1s-vis-rotate { position: relative; width: 230px; height: 230px; z-index: 1; } .q1s-vis-rotate-ring { position: absolute; inset: 0; border: 1px dashed var(--q1s-rule-strong); border-radius: 50%; animation: q1s-rotate 14s linear infinite; } .q1s-vis-rotate-ring::after { content: ''; position: absolute; top: -5px; left: 50%; transform: translateX(-50%); width: 10px; height: 10px; background: var(--q1s-accent); border-radius: 50%; } .q1s-vis-rotate-center { position: absolute; inset: 62px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #d8d3c8, #6a6760 70%, #2a2926); box-shadow: inset 0 2px 6px rgba(255,255,255,0.35), inset 0 -8px 16px rgba(0,0,0,0.3), 0 14px 28px -10px rgba(30, 30, 25, 0.3); } .q1s-vis-rotate-label { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: 20px; color: #fff; z-index: 2; letter-spacing: -0.02em; text-shadow: 0 1px 2px rgba(0,0,0,0.4); } /* Visual: Tritium */ .q1s-vis-tritium { position: relative; width: 300px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; place-items: center; padding: 20px; z-index: 1; } .q1s-tritium-tube { width: 72px; height: 16px; border-radius: 999px; background: #1a1a18; border: 1px solid var(--q1s-rule-strong); position: relative; box-shadow: inset 0 1px 2px rgba(0,0,0,0.4); } .q1s-tritium-tube::after { content: ''; position: absolute; inset: 2px; border-radius: 999px; background: #33ff99; box-shadow: 0 0 12px #33ff99cc, 0 0 24px #33ff9966; animation: q1s-glow-t 2.8s ease-in-out infinite; } .q1s-tritium-tube:nth-child(2)::after { background: #33ddff; box-shadow: 0 0 12px #33ddffcc, 0 0 24px #33ddff66; animation-delay: 0.3s; } .q1s-tritium-tube:nth-child(3)::after { background: #ff6666; box-shadow: 0 0 12px #ff6666cc, 0 0 24px #ff666666; animation-delay: 0.6s; } .q1s-tritium-tube:nth-child(4)::after { background: #ffcc66; box-shadow: 0 0 12px #ffcc66cc, 0 0 24px #ffcc6666; animation-delay: 0.9s; } .q1s-tritium-tube:nth-child(5)::after { background: #cc88ff; box-shadow: 0 0 12px #cc88ffcc, 0 0 24px #cc88ff66; animation-delay: 1.2s; } .q1s-tritium-tube:nth-child(6)::after { background: #66aaff; box-shadow: 0 0 12px #66aaffcc, 0 0 24px #66aaff66; animation-delay: 1.5s; } /* Visual: Single-hand */ .q1s-vis-hand { text-align: center; z-index: 1; position: relative; padding: 40px; } .q1s-vis-hand-sequence { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 26px; } .q1s-hand-step { width: 50px; height: 50px; border: 1px solid var(--q1s-rule-strong); border-radius: 50%; display: grid; place-items: center; font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 500; color: var(--q1s-ink-soft); background: var(--q1s-paper); transition: all 0.3s ease; } .q1s-hand-step-active { background: var(--q1s-accent); border-color: var(--q1s-accent); color: #fff; transform: scale(1.1); box-shadow: 0 0 0 6px var(--q1s-accent-soft); } .q1s-hand-arrow { font-family: 'JetBrains Mono', monospace; color: var(--q1s-rule-strong); font-size: 14px; } .q1s-vis-hand-text { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--q1s-ink-mute); text-transform: uppercase; letter-spacing: 0.24em; } /* Visual: Magnet */ .q1s-vis-magnet { position: relative; width: 260px; height: 170px; z-index: 1; } .q1s-vis-magnet-surface { position: absolute; bottom: 0; left: 0; right: 0; height: 44px; background: repeating-linear-gradient(45deg, #e2ded0 0 6px, #cdc8b8 6px 12px); border-top: 1px solid var(--q1s-rule-strong); border-radius: 0 0 4px 4px; } .q1s-vis-magnet-piece { position: absolute; bottom: 48px; left: 50%; transform: translateX(-50%); width: 68px; height: 68px; border-radius: 8px; background: radial-gradient(circle at 35% 30%, #d8d3c8, #6a6760 70%); border: 1px solid rgba(0,0,0,0.15); box-shadow: 0 6px 14px -4px rgba(30,30,25,0.25); animation: q1s-magnet 2s ease-in-out infinite; } .q1s-vis-magnet-piece::after { content: ''; position: absolute; inset: 18px; border-radius: 50%; background: radial-gradient(circle, var(--q1s-accent) 40%, var(--q1s-accent-2)); box-shadow: 0 0 0 3px rgba(45, 62, 46, 0.18); } /* ========== MARQUEE ========== */ .q1s-marquee { padding: 30px 0; overflow: hidden; border-bottom: 1px solid var(--q1s-rule); background: var(--q1s-accent); position: relative; } .q1s-marquee-track { display: flex; gap: 48px; width: max-content; animation: q1s-marquee 40s linear infinite; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: rgba(255,255,255,0.65); letter-spacing: 0.15em; text-transform: uppercase; } .q1s-marquee-item { display: flex; align-items: center; gap: 10px; white-space: nowrap; font-weight: 500; } .q1s-marquee-item strong { color: #fff; font-weight: 700; } .q1s-marquee-dot { color: rgba(255,255,255,0.4); font-size: 14px; } /* ========== MATERIALS ========== */ .q1s-materials { padding: 20px 40px; border-bottom: 1px solid var(--q1s-rule); } .q1s-materials-head { text-align: center; margin-bottom: 24px; } .q1s-materials-head h2 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(34px, 5.5vw, 52px); line-height: 1; letter-spacing: -0.035em; margin-top: 18px; color: var(--q1s-ink); } .q1s-materials-head h2 em { color: var(--q1s-accent); } .q1s-materials-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--q1s-rule); background: var(--q1s-surface); } .q1s-mat { padding: 20px 22px; text-align: center; border-right: 1px solid var(--q1s-rule); transition: background 0.3s ease; position: relative; } .q1s-mat:last-child { border-right: 0; } .q1s-mat:hover { background: var(--q1s-accent-wash); } .q1s-mat-swatch { width: 76px; height: 76px; margin: 0 auto 22px; border-radius: 50%; border: 1px solid rgba(0,0,0,0.1); position: relative; box-shadow: inset 0 2px 6px rgba(255,255,255,0.4); } .q1s-mat-ti .q1s-mat-swatch { background: radial-gradient(circle at 35% 30%, #ecebe6, #b0ab9f 55%, #6a665c 100%); } .q1s-mat-al .q1s-mat-swatch { background: radial-gradient(circle at 35% 30%, #f8f8f6, #d0cec7 55%, #8a8780 100%); } .q1s-mat-pom .q1s-mat-swatch { background: radial-gradient(circle at 35% 30%, #3a3a36, #1a1a18 70%); } .q1s-mat-pei .q1s-mat-swatch { background: radial-gradient(circle at 35% 30%, #e8b658, #a87218 70%); } .q1s-mat h4 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 700; font-size: 17px; margin-bottom: 8px; letter-spacing: -0.015em; color: var(--q1s-ink); } .q1s-mat-weight { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--q1s-accent); margin-bottom: 10px; font-weight: 500; } .q1s-mat-desc { font-size: 12.5px; color: var(--q1s-ink-mute); line-height: 1.55; } /* ========== SPEC SHEET ========== */ .q1s-spec-sheet { padding: 20px 40px; border-bottom: 1px solid var(--q1s-rule); background: var(--q1s-paper-2); } .q1s-spec-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; } .q1s-spec-diagram { border: 1px solid var(--q1s-rule); background: var(--q1s-surface); position: relative; overflow: hidden; } .q1s-spec-img { width: 100%; height: auto; display: block; } .q1s-spec-diagram::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(var(--q1s-rule) 1px, transparent 1px), linear-gradient(90deg, var(--q1s-rule) 1px, transparent 1px); background-size: 24px 24px; opacity: 0.55; } .q1s-spec-shape { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 160px; height: 160px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #d8d3c8 0%, #9a9588 45%, #4a473f 100%); border: 1px solid rgba(0,0,0,0.12); box-shadow: inset 0 2px 8px rgba(255,255,255,0.3), inset 0 -8px 20px rgba(0,0,0,0.2), 0 14px 30px -8px rgba(30, 30, 25, 0.25); } .q1s-spec-shape::after { content: ''; position: absolute; inset: 30%; border-radius: 50%; background: radial-gradient(circle, #171717 50%, #2a2a28 100%); } .q1s-spec-dim { position: absolute; font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--q1s-accent); letter-spacing: 0.05em; font-weight: 500; } .q1s-spec-dim-w { top: 50%; left: 10%; transform: translateY(-50%); } .q1s-spec-dim-w::after { content: ''; position: absolute; top: 50%; right: -96px; width: 86px; height: 1px; background: var(--q1s-accent); opacity: 0.5; } .q1s-spec-dim-h { bottom: 10%; left: 50%; transform: translateX(-50%); } .q1s-spec-table h3 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: 30px; margin: 14px 0 28px; letter-spacing: -0.025em; color: var(--q1s-ink); line-height: 1.05; } .q1s-spec-table h3 em { color: var(--q1s-accent); } .q1s-spec-row { display: flex; justify-content: space-between; align-items: baseline; padding: 15px 0; border-bottom: 1px solid var(--q1s-rule-strong); font-size: 13px; } .q1s-spec-row-label { font-family: 'JetBrains Mono', monospace; color: var(--q1s-ink-mute); text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px; } .q1s-spec-row-val { font-family: 'Hanken Grotesk', sans-serif; font-weight: 700; color: var(--q1s-ink); font-size: 15px; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; } /* ========== COMPARISON ========== */ .q1s-compare { padding: 20px 20px; border-bottom: 1px solid var(--q1s-rule); } .q1s-compare-head { text-align: center; margin-bottom: 22px; } .q1s-compare-head h2 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(34px, 5.5vw, 48px); letter-spacing: -0.035em; margin-top: 18px; line-height: 1; color: var(--q1s-ink); } .q1s-compare-head h2 em { color: var(--q1s-accent); } .q1s-compare-table { display: grid; grid-template-columns: 1fr 1.3fr 1fr 1fr; border: 1px solid var(--q1s-rule); background: var(--q1s-surface); font-size: 13.5px; } .q1s-compare-cell { padding: 20px 14px; border-bottom: 1px solid var(--q1s-rule); border-right: 1px solid var(--q1s-rule); display: flex; align-items: center; } .q1s-compare-cell:nth-child(4n) { border-right: 0; } .q1s-compare-table > .q1s-compare-cell:nth-last-child(-n+4) { border-bottom: 0; } .q1s-compare-head-cell { background: var(--q1s-paper-2); font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--q1s-ink-mute); text-transform: uppercase; letter-spacing: 0.14em; font-weight: 500; } .q1s-compare-star { background: var(--q1s-accent-wash); } .q1s-compare-head-cell.q1s-compare-star { background: var(--q1s-accent); color: #fff; font-weight: 600; } .q1s-compare-feat { font-family: 'Hanken Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: var(--q1s-ink); letter-spacing: -0.01em; } .q1s-check { color: var(--q1s-accent); font-weight: 700; } .q1s-cross { color: var(--q1s-ink-mute); } .q1s-partial { color: var(--q1s-signal); font-weight: 600; } /* ========== REVIEWS ========== */ .q1s-reviews { padding: 20px 0; border-bottom: 1px solid var(--q1s-rule); background: var(--q1s-paper-2); overflow: hidden; } .q1s-reviews-head { text-align: center; margin-bottom: 22px; padding: 0 40px; } .q1s-reviews-head h2 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(34px, 5.5vw, 48px); line-height: 1; letter-spacing: -0.035em; margin-top: 18px; color: var(--q1s-ink); } .q1s-reviews-head h2 em { color: var(--q1s-accent); } .q1s-reviews-stars { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 22px; color: var(--q1s-signal); font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.1em; font-weight: 500; } .q1s-reviews-stars span:last-child { color: var(--q1s-ink-mute); text-transform: uppercase; } .q1s-reviews-scroll { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); } .q1s-reviews-track { display: flex; gap: 16px; width: max-content; animation: q1s-scroll 55s linear infinite; padding: 8px 20px; } .q1s-review { flex: 0 0 320px; padding: 28px 26px; border: 1px solid var(--q1s-rule); background: var(--q1s-surface); } .q1s-review-stars { color: var(--q1s-signal); font-size: 13px; margin-bottom: 14px; letter-spacing: 2px; } .q1s-review-text { font-family: 'Hanken Grotesk', sans-serif; font-weight: 400; font-size: 15px; color: var(--q1s-ink); line-height: 1.6; margin-bottom: 22px; letter-spacing: -0.005em; } .q1s-review-text em { color: var(--q1s-accent); font-weight: 600; } .q1s-review-author { display: flex; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid var(--q1s-rule); font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--q1s-ink-mute); text-transform: uppercase; letter-spacing: 0.14em; } .q1s-review-author strong { color: var(--q1s-ink); font-weight: 500; } /* ========== MID CTA ========== */ .q1s-mid-cta { padding: 20px 40px; text-align: center; border-bottom: 1px solid var(--q1s-rule); background: var(--q1s-paper); position: relative; } .q1s-mid-cta::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(var(--q1s-rule) 1px, transparent 1px), linear-gradient(90deg, var(--q1s-rule) 1px, transparent 1px); background-size: 36px 36px; opacity: 0.3; pointer-events: none; } .q1s-mid-cta > * { position: relative; z-index: 1; } .q1s-mid-cta h2 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(38px, 6vw, 56px); letter-spacing: -0.04em; line-height: 0.98; margin-bottom: 24px; color: var(--q1s-ink); } .q1s-mid-cta h2 em { color: var(--q1s-accent); } .q1s-mid-cta p { max-width: 540px; margin: 0 auto 38px; color: var(--q1s-ink-soft); font-size: 16.5px; line-height: 1.65; } /* ========== HOW TO ========== */ .q1s-howto { padding: 20px 40px; border-bottom: 1px solid var(--q1s-rule); } .q1s-howto-head { text-align: center; margin-bottom: 22px; } .q1s-howto-head h2 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(34px, 5.5vw, 46px); letter-spacing: -0.035em; margin-top: 18px; line-height: 1; color: var(--q1s-ink); } .q1s-howto-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--q1s-rule); border-bottom: 1px solid var(--q1s-rule); background: var(--q1s-surface); } .q1s-howto-step { padding: 40px 32px; border-right: 1px solid var(--q1s-rule); } .q1s-howto-step:last-child { border-right: 0; } .q1s-howto-num { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--q1s-accent); letter-spacing: 0.22em; text-transform: uppercase; margin-bottom: 24px; display: flex; align-items: center; gap: 12px; font-weight: 500; } .q1s-howto-num::before { content: ''; width: 28px; height: 1px; background: var(--q1s-accent); } .q1s-howto-step h4 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 700; font-size: 22px; margin-bottom: 12px; letter-spacing: -0.02em; color: var(--q1s-ink); } .q1s-howto-step p { font-size: 14.5px; color: var(--q1s-ink-soft); line-height: 1.7; } /* ========== FAQ ========== */ .q1s-faq { padding: 20px 40px; border-bottom: 1px solid var(--q1s-rule); } .q1s-faq-head { text-align: center; margin-bottom: 22px; } .q1s-faq-head h2 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(34px, 5.5vw, 46px); letter-spacing: -0.035em; margin-top: 18px; color: var(--q1s-ink); } .q1s-faq-head h2 em { color: var(--q1s-accent); } .q1s-faq-list { max-width: 720px; margin: 0 auto; } .q1s-faq-item { border-bottom: 1px solid var(--q1s-rule); } .q1s-faq-item:first-child { border-top: 1px solid var(--q1s-rule); } .q1s-faq-q { width: 100%; padding: 26px 0; background: transparent; border: 0; color: var(--q1s-ink); font-family: 'Hanken Grotesk', sans-serif; font-size: 17px; font-weight: 600; text-align: left; display: flex; justify-content: space-between; align-items: center; gap: 20px; letter-spacing: -0.015em; transition: color 0.2s ease; line-height: 1.4; } .q1s-faq-q:hover { color: var(--q1s-accent); } .q1s-faq-icon { flex-shrink: 0; width: 20px; height: 20px; position: relative; } .q1s-faq-icon::before, .q1s-faq-icon::after { content: ''; position: absolute; background: currentColor; left: 50%; top: 50%; transform: translate(-50%, -50%); } .q1s-faq-icon::before { width: 12px; height: 1px; } .q1s-faq-icon::after { width: 1px; height: 12px; transition: transform 0.3s ease; } .q1s-faq-item.q1s-active .q1s-faq-icon::after { transform: translate(-50%, -50%) rotate(90deg); } .q1s-faq-item.q1s-active .q1s-faq-icon { color: var(--q1s-accent); } .q1s-faq-a { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease; color: var(--q1s-ink-soft); font-size: 14.5px; line-height: 1.7; } .q1s-faq-item.q1s-active .q1s-faq-a { max-height: 1500px; padding: 0 0 26px; } /* ========== FINAL CTA ========== */ .q1s-final { padding: 20px 40px 20px; text-align: center; position: relative; background: var(--q1s-accent); color: #fff; overflow: hidden; } .q1s-final::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px); background-size: 36px 36px; pointer-events: none; } .q1s-final > * { position: relative; z-index: 1; } .q1s-final-mark { display: inline-flex; align-items: center; gap: 12px; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: rgba(255,255,255,0.7); letter-spacing: 0.3em; margin-bottom: 32px; text-transform: uppercase; font-weight: 500; } .q1s-final-mark::before, .q1s-final-mark::after { content: ''; width: 28px; height: 1px; background: rgba(255,255,255,0.4); } .q1s-final h2 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(46px, 7.5vw, 80px); line-height: 0.96; letter-spacing: -0.045em; margin-bottom: 26px; color: #fff; } .q1s-final h2 em { color: var(--q1s-accent-soft); } .q1s-final p { max-width: 540px; margin: 0 auto 40px; color: rgba(255,255,255,0.8); font-size: 16.5px; line-height: 1.65; } .q1s-final .q1s-cta { background: #fff; color: var(--q1s-accent); } .q1s-final .q1s-cta:hover { background: var(--q1s-accent-soft); color: var(--q1s-accent-2); box-shadow: 0 8px 20px -8px rgba(0,0,0,0.3); } .q1s-final-note { margin-top: 36px; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: rgba(255,255,255,0.55); letter-spacing: 0.2em; text-transform: uppercase; } .q1s-safety { margin: 72px auto 0; max-width: 620px; padding: 26px 30px; border: 1px solid rgba(255, 255, 255, 0.15); background: rgba(0, 0, 0, 0.15); border-radius: var(--q1s-radius); text-align: left; } .q1s-safety-label { display: inline-block; padding: 4px 12px; margin-bottom: 12px; background: var(--q1s-signal); color: #fff; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; letter-spacing: 0.18em; border-radius: 2px; } .q1s-safety p { font-size: 13px; color: rgba(255,255,255,0.8); line-height: 1.65; margin: 0; } /* ========== ANIMATIONS ========== */ @keyframes q1s-drift-l { 0%, 100% { transform: translate(0, -50%); } 50% { transform: translate(-6px, -50%); } } @keyframes q1s-drift-r { 0%, 100% { transform: translate(0, -50%); } 50% { transform: translate(6px, -50%); } } @keyframes q1s-slide-r { 0%, 100% { transform: translate(-22px, -50%); } 45%, 55% { transform: translate(0, -50%); } } @keyframes q1s-slide-l { 0%, 100% { transform: translate(22px, -50%); } 45%, 55% { transform: translate(0, -50%); } } @keyframes q1s-core { 0%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(0.5); } 45%, 55% { opacity: 1; transform: translate(-50%, -50%) scale(1); } } @keyframes q1s-bar { from { width: 0; } to { width: 47%; } } @keyframes q1s-bar-mark { 0%, 80% { opacity: 0; } 100% { opacity: 1; } } @keyframes q1s-rotate { to { transform: rotate(360deg); } } @keyframes q1s-magnet { 0%, 100% { bottom: 48px; } 50% { bottom: 44px; } } @keyframes q1s-glow-t { 0%, 100% { opacity: 1; filter: brightness(1); } 50% { opacity: 0.7; filter: brightness(0.85); } } @keyframes q1s-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } } @keyframes q1s-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } } /* ===== FEATURE PHOTO SLOTS ===== */ .q1s-photo-caption { position: absolute; bottom: 16px; right: 18px; z-index: 4; padding: 5px 11px; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; background: rgba(240, 239, 235, 0.85); color: #2d3e2e; border: 1px solid rgba(45, 62, 46, 0.25); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border-radius: 2px; pointer-events: none; opacity: 0; transition: opacity 0.4s ease 0.2s; } /* Placeholder shown when no photo loaded */ .q1s-photo-placeholder { display: none !important; position: absolute; top: 18px; left: 22px; z-index: 2; max-width: 200px; padding: 10px 12px; background: rgba(255, 255, 255, 0.6); border: 1px dashed rgba(45, 62, 46, 0.35); border-radius: 3px; font-family: 'JetBrains Mono', monospace; color: #52514d; opacity: 0.8; } .q1s-photo-placeholder-id { font-size: 10px; font-weight: 600; color: #2d3e2e; letter-spacing: 0.1em; margin-bottom: 4px; } .q1s-photo-placeholder-hint { font-size: 9.5px; line-height: 1.45; letter-spacing: 0.02em; color: #52514d; text-transform: none; } @media (max-width: 768px) { .q1s-photo-placeholder { max-width: 180px; top: 14px; left: 16px; padding: 8px 10px; } .q1s-photo-caption { bottom: 12px; right: 14px; font-size: 9px; padding: 4px 9px; } } /* ===== HERO MAGNETIC ANIMATION (q1s) ===== */ .q1s-hero-visual { position: relative; width: min(560px, 90%); aspect-ratio: 2.2/1; margin: 40px auto 24px; } .q1s-mag-part { position: absolute; top: 50%; width: 42%; aspect-ratio: 1; transform: translateY(-66%); object-fit: contain; z-index: 4; } .q1s-mag-part-L { left: 0; animation: q1s-mag-L-move 4.5s ease-in-out infinite; } .q1s-mag-part-R { right: 0; animation: q1s-mag-R-move 4.5s ease-in-out infinite; } .q1s-mag-merged { position: absolute; top: 50%; left: 50%; width: 86%; aspect-ratio: 2.05/1; transform: translate(-50%, -66%); object-fit: contain; z-index: 5; opacity: 0; animation: q1s-mag-merged-show 4.5s ease-in-out infinite; pointer-events: none; } .q1s-mag-trail-L, .q1s-mag-trail-R { position: absolute; top: 50%; width: 38%; aspect-ratio: 1; transform: translateY(-66%); opacity: 0; z-index: 3; pointer-events: none; filter: blur(14px); border-radius: 50%; background: radial-gradient(ellipse at center, rgba(45, 62, 46, 0.4) 0%, transparent 70%); } .q1s-mag-trail-L { left: 24%; animation: q1s-mag-trail-L-motion 4.5s ease-in-out infinite; } .q1s-mag-trail-R { right: 24%; animation: q1s-mag-trail-R-motion 4.5s ease-in-out infinite; } .q1s-mag-glow { position: absolute; top: 50%; left: 50%; width: 75%; aspect-ratio: 2.3/1; transform: translate(-50%, -56%); opacity: 0; z-index: 3; pointer-events: none; filter: blur(18px); border-radius: 50%; background: radial-gradient(circle, rgba(45, 62, 46, 0.5) 0%, transparent 65%); } .q1s-mag-field { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -56%); width: 60%; aspect-ratio: 2.8/1; z-index: 6; pointer-events: none; opacity: 0; animation: q1s-mag-field-show 4.5s ease-in-out infinite; } .q1s-mag-field path { fill: none; stroke: #2d3e2e; stroke-width: 0.5; stroke-dasharray: 1.5 2; stroke-linecap: round; animation: q1s-mag-dash-flow 1.2s linear infinite; } .q1s-mag-field path:nth-child(1) { animation-delay: 0s; } .q1s-mag-field path:nth-child(2) { animation-delay: -0.4s; } .q1s-mag-field path:nth-child(3) { animation-delay: -0.8s; } @keyframes q1s-mag-L-move { 0% { transform: translate(-12%, -66%); opacity: 1; } 35% { transform: translate(6%, -66%); opacity: 1; } 38% { opacity: 0; } 60% { opacity: 0; } 65% { transform: translate(6%, -66%); opacity: 1; } 100% { transform: translate(-12%, -66%); opacity: 1; } } @keyframes q1s-mag-R-move { 0% { transform: translate(12%, -66%); opacity: 1; } 35% { transform: translate(-6%, -66%); opacity: 1; } 38% { opacity: 0; } 60% { opacity: 0; } 65% { transform: translate(-6%, -66%); opacity: 1; } 100% { transform: translate(12%, -66%); opacity: 1; } } @keyframes q1s-mag-merged-show { 0%, 36% { opacity: 0; } 42%, 58% { opacity: 1; } 64%, 100% { opacity: 0; } } @keyframes q1s-mag-trail-L-motion { 0% { opacity: 0; transform: translate(-45%, -66%); } 18% { opacity: 0.85; transform: translate(-15%, -66%); } 30% { opacity: 0.6; transform: translate(0%, -66%); } 38%, 62% { opacity: 0; } 70% { opacity: 0.5; transform: translate(0%, -66%); } 82% { opacity: 0.3; transform: translate(-25%, -66%); } 100% { opacity: 0; transform: translate(-45%, -66%); } } @keyframes q1s-mag-trail-R-motion { 0% { opacity: 0; transform: translate(45%, -66%); } 18% { opacity: 0.85; transform: translate(15%, -66%); } 30% { opacity: 0.6; transform: translate(0%, -66%); } 38%, 62% { opacity: 0; } 70% { opacity: 0.5; transform: translate(0%, -66%); } 82% { opacity: 0.3; transform: translate(25%, -66%); } 100% { opacity: 0; transform: translate(45%, -66%); } } @keyframes q1s-mag-glow-show { 0%, 28% { opacity: 0; } 40%, 58% { opacity: 1; } 68%, 100% { opacity: 0; } } @keyframes q1s-mag-field-show { 0%, 30% { opacity: 0; } 42%, 56% { opacity: 0.7; } 62%, 100% { opacity: 0; } } @keyframes q1s-mag-dash-flow { to { stroke-dashoffset: -18; } } /* Apply glow animation */ .q1s-mag-glow { animation: q1s-mag-glow-show 4.5s ease-in-out infinite; } /* ===== PROBLEM CARDS — enhanced failure treatment ===== */ .q1s-problem { padding: 40px 36px 40px 40px; background: rgba(180, 83, 9, 0.06); position: relative; border-left: 3px solid #b45309; } .q1s-problem::before { content: ''; position: absolute; top: 28px; left: -1.5px; width: 3px; height: 22px; background: #b45309; box-shadow: 0 0 12px #b45309; } .q1s-problem-glyph { position: absolute; top: 28px; right: 32px; font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 700; color: #b45309; line-height: 1; width: 26px; height: 26px; border: 1.5px solid #b45309; border-radius: 50%; display: flex; align-items: center; justify-content: center; } .q1s-problem-tag { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #b45309; text-transform: uppercase; letter-spacing: 0.2em; padding-bottom: 14px; padding-right: 40px; border-bottom: 1px dashed rgba(180, 83, 9, 0.3); } .q1s-problem-tag::before { background: #b45309 !important; } .q1s-problem-tag-id { color: var(--q1s-ink-soft); font-weight: 500; } .q1s-problem h3 { font-family: 'Hanken Grotesk', sans-serif; font-weight: 700; font-size: 24px; margin-bottom: 14px; letter-spacing: -0.02em; color: var(--q1s-ink); } .q1s-problem h3 .q1s-strike { color: var(--q1s-ink-mute); text-decoration: line-through; text-decoration-thickness: 2px; text-decoration-color: #b45309; font-weight: 500; margin-right: 8px; } .q1s-problem h3 .q1s-flaw { color: #b45309; font-weight: 800; } .q1s-problem p { color: var(--q1s-ink-soft); font-size: 14.5px; line-height: 1.65; } /* ===== DUAL-LOCK GIF (studio) ===== */ .q1s-how-gif { max-width: none; margin: -20px -37px 36px; line-height: 0; } .q1s-how-gif img { width: 100%; height: auto; display: block; border-radius: 6px; } /* ===== FEAT PHOTO (clean) ===== */ .q1s-feat-photo { position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center !important; transform: scale(1.05); opacity: 1; transition: opacity 0.6s ease, transform 0.8s ease; z-index: 3; display: block !important; margin: 0 !important; padding: 0 !important; max-width: none !important;} .q1s-feat-photo-loaded ~ .q1s-photo-placeholder { display: none; } /* ========== RESPONSIVE ========== */ @media (max-width: 768px) { .q1s-wrap { border-radius: 0; } .q1s-hero { padding: 20px 22px 20px; } .q1s-hero-trust span { padding: 4px 14px; border-left: 0; } .q1s-hook, .q1s-how, .q1s-scenes, .q1s-materials, .q1s-spec-sheet, .q1s-compare, .q1s-mid-cta, .q1s-howto, .q1s-faq { padding: 20px 22px; } .q1s-final { padding: 20px 22px 20px; } .q1s-benefits { grid-template-columns: repeat(2, 1fr); } .q1s-benefit { border-right: 0; border-bottom: 1px solid var(--q1s-rule); } .q1s-benefit:nth-child(odd) { border-right: 1px solid var(--q1s-rule); } .q1s-benefit:nth-last-child(-n+2) { border-bottom: 0; } .q1s-problem-grid { grid-template-columns: 1fr; } .q1s-problem:last-child { border-bottom: 0; } .q1s-how-steps { grid-template-columns: 1fr; gap: 34px; } .q1s-how-steps::before { display: none; } .q1s-scenes-grid { grid-template-columns: 1fr; } .q1s-scene { aspect-ratio: 4/3; } .q1s-feature { grid-template-columns: 1fr; } .q1s-feature-visual { width: 100%; aspect-ratio: 4 / 3; min-height: 280px; } .q1s-feature-text { padding: 20px 5px; border-right: 0; border-bottom: 1px solid var(--q1s-rule); } .q1s-feature-reverse .q1s-feature-text { border-left: 0; border-top: 1px solid var(--q1s-rule); text-align: left; } .q1s-feature-reverse .q1s-feature-text { order: 1; } .q1s-feature-reverse .q1s-feature-visual { order: 2; } .q1s-materials-grid { grid-template-columns: repeat(2, 1fr); } .q1s-mat { border-bottom: 1px solid var(--q1s-rule); } .q1s-mat:nth-child(odd) { border-right: 1px solid var(--q1s-rule); } .q1s-mat:nth-child(even) { border-right: 0; } .q1s-mat:nth-last-child(-n+2) { border-bottom: 0; } .q1s-spec-grid { grid-template-columns: 1fr; gap: 34px; } .q1s-howto-steps { grid-template-columns: 1fr; } .q1s-howto-step { border-right: 0; border-bottom: 1px solid var(--q1s-rule); } .q1s-howto-step:last-child { border-bottom: 0; } .q1s-compare-table { font-size: 11px; grid-template-columns: 0.9fr 1.2fr 0.95fr 0.95fr; } .q1s-compare-cell { padding: 14px 10px; } .q1s-review { flex: 0 0 280px; padding: 22px; } } /* ===== TRITIUM BRIGHTNESS ===== */ .q1s-brightness { padding: 40px 20px; background: var(--q1s-surface); border-top: 1px solid var(--q1s-rule); border-bottom: 1px solid var(--q1s-rule); } .q1s-brightness-title { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(28px, 4vw, 38px); line-height: 1.05; letter-spacing: -0.035em; color: var(--q1s-ink); margin: 0 0 16px; } .q1s-brightness-intro { font-size: 15px; line-height: 1.65; color: var(--q1s-ink-soft); margin: 0 0 32px; } .q1s-brightness-rows { display: flex; flex-direction: column; gap: 14px; } .q1s-brightness-row { display: grid; grid-template-columns: 16px 90px 1fr 44px; align-items: center; gap: 14px; } .q1s-brightness-dot { width: 12px; height: 12px; border-radius: 50%; display: block; border: 1px solid rgba(0,0,0,0.08); } .q1s-brightness-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.14em; color: var(--q1s-ink-mute); text-transform: uppercase; } .q1s-brightness-bar { height: 8px; background: var(--q1s-paper-2); border-radius: 4px; position: relative; overflow: hidden; display: block; } .q1s-brightness-fill { display: block; height: 100%; border-radius: 4px; position: relative; } .q1s-brightness-pct { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--q1s-ink); font-weight: 600; text-align: right; } .q1s-brightness-note { margin-top: 20px; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.06em; color: var(--q1s-ink-mute); text-transform: uppercase; } @media (max-width: 520px) { .q1s-brightness-row { grid-template-columns: 14px 74px 1fr 36px; gap: 10px; } .q1s-brightness-label { font-size: 10px; } .q1s-brightness-pct { font-size: 11px; } } /* ===== VIDEO REVIEW ===== */ .q1s-video-review { margin: 32px 0 40px; } .q1s-video-review-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.18em; color: var(--q1s-accent); text-transform: uppercase; margin-bottom: 12px; text-align: center; } .q1s-video-review-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; border: 1px solid var(--q1s-rule); background: var(--q1s-ink); overflow: hidden; } .q1s-video-review-frame iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; display: block; } /* ===== HOWTO VIDEO ===== */ .q1s-howto-video { margin: 24px 0 32px; } .q1s-howto-video-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.18em; color: var(--q1s-accent); text-transform: uppercase; margin-bottom: 12px; text-align: center; } .q1s-howto-video-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; border: 1px solid var(--q1s-rule); background: var(--q1s-ink); overflow: hidden; } .q1s-howto-video-frame iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; display: block; } /* ===== TRITIUM INFO CALLOUTS ===== */ .q1s-trit-info { margin-top: 28px; display: flex; flex-direction: column; gap: 14px; } .q1s-trit-info-item { padding: 14px 16px; background: var(--q1s-accent-wash); border-left: 2px solid var(--q1s-accent); } .q1s-trit-info-label { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: 0.16em; color: var(--q1s-accent); text-transform: uppercase; margin-bottom: 6px; font-weight: 500; } .q1s-trit-info-body { font-size: 13.5px; line-height: 1.6; color: var(--q1s-ink-soft); } .q1s-trit-info-body strong { color: var(--q1s-ink); font-weight: 700; } /* ===== COMPARE SIZES ===== */ .q1s-compare-sizes { margin-top: 24px; } .q1s-compare-sizes-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.18em; color: var(--q1s-ink-mute); text-transform: uppercase; margin-bottom: 12px; text-align: center; } .q1s-compare-sizes-img { width: 100%; height: auto; display: block; border: 1px solid var(--q1s-rule); background: var(--q1s-surface); } /* ===== TRITIUM CONFIG SECTION ===== */ .q1s-trit-config { padding: 20px 20px; background: var(--q1s-surface); border-bottom: 1px solid var(--q1s-rule); } .q1s-trit-config-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; } .q1s-trit-config-image { position: relative; overflow: hidden; border: 1px solid var(--q1s-rule); background: #fff; } .q1s-trit-config-image img { width: 100%; height: auto; display: block; } .q1s-trit-config-title { font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: clamp(26px, 3.6vw, 36px); line-height: 1.05; letter-spacing: -0.035em; color: var(--q1s-ink); margin: 14px 0 24px; } .q1s-trit-config-callouts { display: flex; flex-direction: column; gap: 14px; } @media (max-width: 768px) { .q1s-trit-config-grid { grid-template-columns: 1fr; gap: 20px; } .q1s-trit-config-image { } } /* ===== COMPARE CTA ===== */ .q1s-compare-cta { margin-top: 28px; text-align: center; } Locks automatically.Releases with one hand. A one-hand quick-release connector for keys, tools, and everyday carry — magnetic alignment, mechanical security, titanium build. Ti-6Al-4V · CNC ±0.01mm N52 · 75kg Load Magnetic Approach × Mechanical Lock From$19.90 ADD TO CART → 30-Day Returns Factory-Direct EDC Tested 1-HAND Single-Hand Operation DUAL-LOCK Mag-Mech Engaged 75kg Working Load 7.6g Titanium Build The EDC Problem Tangled keys. Fumbled tools. Lost gear. In the split-second you need that key, that flashlight, that drive — your carry should be ready. Yet every connector on the market makes the same compromise. ! Magnetic OnlyTrade-off · 01 Easy.Unreliable. Snaps on fast, but one jostle and your keys are gone. Weak retention means lost items — and lost trust in the piece you carry every day. ! Mechanical OnlyTrade-off · 02 Secure.Slow. A strong hold, but needs two hands and a fidget dance every time you want your keys back. Not built for the rhythm of real life. Dual-Lock Mechanism Two systems.One fluid motion. 01 Approach N52 magnets draw the halves together with precise alignment — no aiming, no fumbling, no missed connection. 02 Auto-Lock A mechanical interlock engages the instant contact is made. Magnets hold the alignment; the lock secures the load. 03 Pull to Release A gentle pull on the outer shell disengages the lock. True single-hand operation — learned in three uses. Where It Lives Built for every carry / 01 · Outdoor Trail & Travel Flashlights, multitools, bottle carabiners. Detach without breaking stride. / 02 · Urban Commute & Office Keycards, car keys, USB drives. One hand on the wheel, the other on the grab. / 03 · Everyday Home & Pocket ID tags, charms, small tools. Organized, instantly accessible, never tangled. The Core Innovation Magnetic speed meets mechanical security. Q1 V2 merges two worlds into one connector. The magnet does the finding; the mechanical lock does the holding. Accidental release? Physically impossible without a deliberate pull. N52 neodymium magnets for confident auto-alignment Stainless steel internal locking mechanism No sliders, no switches, no second hand required Instant Release True single-handed operation. Grip. Pull. Gone. The outer shell design disengages the internal lock with one motion — no thumb slide, no press-and-hold, no learning curve. Muscle memory in three uses. Ergonomic shell contour for positive grip Calibrated release tension — firm but fluid Works identically with gloves on or off Load Capacity Grade 5 titanium.Tested to 158 kg. Smaller than a coin, stronger than you'd believe. We load-tested the Q1 V2 to 348 lbs in the lab — then set the working load at 75 kg (165 lbs) so you never approach the limit in daily carry. Grade 5 titanium (Ti-6Al-4V) aerospace alloy Working load: 75 kg / 165 lbs Max test load: 158 kg / 348 lbs Ultra-Lightweight Smaller than a coin.Lighter than a nickel. Four material options, each tuned for a different carry philosophy. Titanium for the long-haul EDC. Aluminum for weight optimization. POM and PEI for non-metallic carry. 360° Infinite Rotation Zero tangling. Full freedom. An internal swivel lets both halves rotate independently, 360° in any direction. Keys, tools, and lanyards twist naturally as you move — no knots, no binding, no daily frustration. Dual-bearing swivel, internal to the shell Smooth rotation under load or unloaded Sealed against pocket lint and dust N52 Magnet Utility Stick it. Store it. Find it. The same N52 magnets that drive the lock also let you stick the detached half to any magnetic surface — fridge, locker, toolbox, desk. Drop it once, find it first time. Tritium Ready A special edition that glows. The Q1 V2 - Tritium Ready houses up to six 1.5 × 6 mm tritium tubes for 24/7 passive illumination. Zero batteries, zero power, up to 25 years of glow. Pick your colors during checkout. Six 1.5×6mm tritium slots Mix and match color vials (sold separately) Precision-routed channels for even light dispersion Tritium Configuration How to customize yours. — What's Included If you select "Q1 V2 - Tritium Ready / Standard (No Tritium)", you'll receive the titanium housing without any vials. If you select any "6 × Colors" option, the price includes 6 tritium vials and free installation. — Installation Service We provide FREE installation on all orders. Whether you buy the "6 × Custom Colors" set or purchase separate vials, we install them for you before shipping. — Slot Order For custom configurations, please ensure your color order matches the "Slot Diagram" in the product images (Slots 1–6). We'll install them exactly how you envision. — Perceived Brightness Choose by visibility. Among the standard colors, Green is perceived by the human eye as the brightest. The other colors appear progressively dimmer. For maximum low-light visibility, Green and Yellow are the strongest choices. GREEN 100% YELLOW 90% WHITE 60% ORANGE 50% ICE BLUE 40% PINK 20% RED 20% PURPLE 15% Data reflects eye sensitivity at scotopic / low-light conditions. Grade 5 Titanium + N52 Neodymium + 75kg Working Load + 360° Rotation + 7.6g Lightweight + CNC ±0.01mm + Tritium Ready + Grade 5 Titanium + N52 Neodymium + 75kg Working Load + 360° Rotation + 7.6g Lightweight + CNC ±0.01mm + Tritium Ready + Choose Your Material Four builds.One mechanism. Titanium 7.6g Grade 5 aerospace alloy. Flagship build. Aluminum 5.7g Anodized 7075-T6. Featherweight carry. POM 5.6g Self-lubricating polymer. Non-metallic. PEI 5.6g Amber high-performance polymer. Heat-stable. Technical Sheet Precision, documented. Diameter11 mm / 0.43" Height27.8 mm / 1.09" Weight (Ti)7.6 g MagnetN52 Neodymium Working Load75 kg / 165 lbs Test Load158 kg / 348 lbs Rotation360° Infinite MachiningCNC ±0.01mm Q1 Series Which Q1 V2 fits you? Feature Q1 V2 - Tritium Ready Q1 V2 Q1 V2 S Magnetic Auto-Lock on Approach Yes — built-in magnets Yes — built-in magnets No — requires two hands to lock Single-Hand Operation Yes Yes One-Hand Release, Two-Hand Close Size Profile Large Standard Miniature Tritium Option Yes No No Best For Daily Quick-Access Daily Quick-Access Ultra-Compact Carry — Dimension Reference ADD TO CART → Carried By The upgrade you only notice once. ★★★★★ 4.9 / 5 · Verified Backers — Hands-On Review ★★★★★ Had the V1 for two years — the V2 auto-lock is the upgrade I didn't know I needed. Approach the halves and it just clicks. Flawless. M. TorresVerified ★★★★★ Titanium build quality is identical to gear twice the price. Used it daily for three months on my keys and pocket flashlight. Hasn't failed once. D. ChenVerified ★★★★★ The 360° swivel fixes my single biggest lanyard gripe. No more tangles. The magnet holds my keys on the fridge, which is weirdly useful. A. ParkVerified ★★★★★ Got the tritium version. Glow is subtle but reliable — I can find my keychain on a dark nightstand without fumbling. Exactly what I wanted. J. WhitmanVerified ★★★★★ The release pull tension is dialed in perfectly. Firm enough it won't pop in a bag, light enough I don't fight it. Beautiful engineering. R. AhmadVerified ★★★★★ Switched from a leading competitor's quick-release. The Q1 V2 feels in a different league. Single-hand operation is the real deal here. K. MüllerVerified ★★★★★ Had the V1 for two years — the V2 auto-lock is the upgrade I didn't know I needed. Approach the halves and it just clicks. Flawless. M. TorresVerified ★★★★★ Titanium build quality is identical to gear twice the price. Used it daily for three months on my keys and pocket flashlight. Hasn't failed once. D. ChenVerified Carry it once.Never go back. Available in four materials, standard or Tritium edition. Built in our ISO 9001 titanium facility to ±0.01mm tolerance. ADD TO CART → In Practice Using it daily — Watch the Walkthrough 01 · Connect Keep the release ring free Do not hold the release ring while connecting. Hold the body below it and bring both halves close. Magnetic alignment guides them together automatically. 02 · Lock & Carry Auto-locks securely When the release ring is free to move, Q1 V2 automatically locks into place. Lightly pull to confirm it is secure, then carry hands-free. 03 · Release Pull the shell Grip the outer shell and pull along the axis to disengage the lock. Your gear is instantly in your hand. Common Questions Things worth knowing Warranty & Inspection Notice (Installed Tritium) Tritium tubes are securely installed in the titanium housing, but they are still glass and may crack or break if dropped or impacted. Please inspect the item immediately upon opening the package on the delivery date and confirm in a completely dark environment that all tubes are intact and glowing. Any issue, including non-glowing, cracked, loose, or broken tubes, must be reported to us by email no later than the end of the day following delivery. Photos of the defective tube must be provided together with the original packaging, or the claim will not be accepted. The delivery date and time shall be determined solely by the carrier's tracking information and delivery confirmation record. The warranty covers only defects or damage present upon arrival and before any use. Once the item has been used, attached, carried, dropped, or otherwise put into service, no warranty, replacement, or refund will be provided. Can I use the Q1 V2 for climbing or safety-critical loads? No. Despite passing load tests to 158 kg, the Q1 V2 is designed and certified only for everyday carry — keys, tools, small gear. It is not rated for climbing, mountaineering, diving, lifting, or any life-safety application. Please use purpose-built rated hardware for those uses. Will the magnet affect my phone, cards, or electronics? The N52 magnets are fully encased in the titanium shell, which significantly shields external magnetic exposure. Modern phones, credit cards (which use RFID/chip rather than magnetic strips), and keyless entry fobs are not affected by typical EDC proximity. Keep direct contact with legacy magnetic-stripe cards to a minimum as a precaution. How does V2 differ from the original Q1 V1? The Q1 V1 uses a manual slide lock — you actively slide a collar to secure and release. The V2 is fully automatic: the lock engages on magnetic approach, and releases with a simple axial pull. V2 is the one-handed version; V1 is the manual-control version. Both share the same Grade 5 titanium build and 360° swivel. What is the Tritium Ready edition, and do tritium tubes come with it? The Q1 V2 - Tritium Ready has six machined slots for 1.5 × 6 mm tritium vials, providing passive glow for up to 25 years without batteries. Tritium vials are sold separately so you can choose your colors. We offer Swiss-sourced vials in our tritium collection. What's your warranty and return policy? 30-day no-questions returns on unused product. We also back the mechanical and titanium components against defects. Reach out via our contact page if anything isn't right — we ship direct from the factory and respond fast. Q1 · V2 · EDC Connector Built for the carryyou actually have. Grade 5 titanium. Dual-lock. One hand. Every day. ADD TO CART → From $19.90 · Ships Factory-Direct Safety Notice Q1 V2 is built for everyday gear and accessories. It is NOT intended or certified for climbing, mountaineering, diving, or any safety-critical application. Always use purpose-rated hardware for life-safety loads. (function(){ 'use strict'; var wrap = document.querySelector('.q1s-wrap'); if (!wrap) return; /* CTA scroll to Focal variant selector */ function scrollToVariants() { /* Try Focal/Dawn-friendly variant selectors in order of specificity */ var selectors = [ 'variant-radios', 'variant-selects', 'variant-picker', '.product-form__buttons', '.product-form__input', '.product__form', '.product-form', 'form[action*="/cart/add"] button[type="submit"]', 'form[action*="/cart/add"]' ]; var target = null; for (var i = 0; i < selectors.length; i++) { var found = document.querySelector(selectors[i]); if (found) { /* Skip if the match is the product description container itself (which contains this button) */ var wrap = found.closest('[class*="-wrap"]'); if (wrap && (wrap.classList.contains('q1-wrap') || wrap.classList.contains('q1s-wrap') || wrap.classList.contains('q1l-wrap'))) { continue; } target = found; break; } } if (target) { var rect = target.getBoundingClientRect(); var top = rect.top + window.pageYOffset - 100; window.scrollTo({ top: top, behavior: 'smooth' }); } else { /* Fallback: scroll to top of product container if no variant form found */ var prodContainer = document.querySelector('.product, .product-section, main [data-section-type="product"]'); if (prodContainer) { var top2 = prodContainer.getBoundingClientRect().top + window.pageYOffset - 100; window.scrollTo({ top: top2, behavior: 'smooth' }); } } } wrap.querySelectorAll('[data-q1s-scroll="variants"]').forEach(function(btn){ btn.addEventListener('click', scrollToVariants); }); /* FAQ accordion */ wrap.querySelectorAll('.q1s-faq-item').forEach(function(item){ var q = item.querySelector('.q1s-faq-q'); if (!q) return; q.addEventListener('click', function(){ item.classList.toggle('q1s-active'); }); }); /* Reviews loop safety */ var reviewsTrack = document.getElementById('q1sReviewsTrack'); if (reviewsTrack) { var scrollContainer = reviewsTrack.parentElement; if (scrollContainer) { var containerW = scrollContainer.clientWidth; var trackW = reviewsTrack.scrollWidth; if (trackW < containerW * 2.2) { reviewsTrack.innerHTML += reviewsTrack.innerHTML; } } } /* Single-hand sequence cycler */ var handSteps = wrap.querySelectorAll('.q1s-hand-step'); if (handSteps.length === 3) { var idx = 0; setInterval(function(){ handSteps.forEach(function(s){ s.classList.remove('q1s-hand-step-active'); }); idx = (idx + 1) % 3; handSteps[idx].classList.add('q1s-hand-step-active'); }, 1600); } })();
More you might like
Related
Keychron Q1 Pro / Q1 HE / Q1 Max / Q2 / V2 / V2 Max Wristres
Related
Add Titanium Q1 V2 + Titanium Q1 V2 Direct Connector Bundle
Related
Keychron Silicone Palm Rest for V1/V1 Max/V2 / V2 Max / Q9 /
Related