{"product_id":"eufy-security-solocam-s340-3k-ptz-dual-lense-solar-t81701w1-brand-new","title":"eufy SoloCam S340 Security Camera | 2nd Gen | Brand New","description":"\u003c!--\n  =====================================================\n  eufy SoloCam S340 (Gen 2) — BRAND NEW · FACTORY SEALED\n  CamGuard Australia · \"Sunset Watch · Driven by One Clock\"\n  =====================================================\n  Same showcase build family as the S230 listing, adapted\n  for the S340's flagship dual-lens (3K + 2K), 360° PTZ,\n  8× hybrid zoom, and the upgraded 3W SolarPlus panel.\n  =====================================================\n  Pure CSS · No JS · Shopify-safe · Scoped to .s340f\n  =====================================================\n--\u003e\n\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Sora:wght@200..900\u0026family=DM+Sans:opsz,wght@9..40,300..700\u0026family=JetBrains+Mono:wght@400;500;700\u0026display=swap');\n\n@property --s340f-clock     { syntax: '\u003cnumber\u003e';     inherits: true;  initial-value: 0; }\n@property --s340f-angle     { syntax: '\u003cangle\u003e';      inherits: false; initial-value: 0deg; }\n@property --s340f-glow      { syntax: '\u003ccolor\u003e';      inherits: false; initial-value: oklch(72% 0.15 70); }\n@property --godray-from     { syntax: '\u003cangle\u003e';      inherits: false; initial-value: 0deg; }\n\n.s340f, .s340f *, .s340f *::before, .s340f *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n.s340f {\n  font-family: 'DM Sans', -apple-system, sans-serif;\n  line-height: 1.55;\n  font-size: 16.5px;\n  -webkit-font-smoothing: antialiased;\n  overflow-x: clip;\n  position: relative;\n  color: var(--ink);\n  background: var(--paper);\n\n  --ink: oklch(15% 0.03 260);\n  --ink-2: oklch(28% 0.025 260);\n  --ink-3: oklch(48% 0.02 260);\n  --paper: oklch(99% 0.005 80);\n  --paper-2: oklch(96% 0.012 80);\n  --paper-3: oklch(92% 0.018 80);\n  --line: oklch(88% 0.012 80);\n  --line-soft: oklch(94% 0.008 80);\n\n  --coral: oklch(72% 0.18 25);\n  --coral-deep: oklch(58% 0.20 20);\n  --amber: oklch(80% 0.16 75);\n  --amber-deep: oklch(65% 0.17 65);\n  --magenta: oklch(65% 0.22 340);\n  --magenta-deep: oklch(52% 0.22 340);\n  --indigo: oklch(55% 0.20 280);\n  --indigo-deep: oklch(40% 0.18 280);\n  --teal: oklch(72% 0.13 195);\n  --teal-deep: oklch(50% 0.13 195);\n  --mint: oklch(78% 0.15 165);\n  --mint-deep: oklch(58% 0.15 165);\n\n  --night: oklch(18% 0.06 265);\n  --night-deep: oklch(8% 0.05 265);\n\n  --ease-spring: linear(0, 0.4 18%, 0.8 30%, 1.05 42%, 0.97 56%, 1.02 72%, 0.99 86%, 1);\n  --ease-bloom: linear(0, 0.2 25%, 0.65 50%, 0.95 75%, 1);\n  --ease-breath: linear(0, 0.5 50%, 1);\n}\n\n.s340f a { color: inherit; text-decoration: none; }\n.s340f img { max-width: 100%; height: auto; display: block; }\n.s340f h1, .s340f h2, .s340f h3, .s340f h4 {\n  font-family: 'Sora', 'DM Sans', sans-serif;\n  font-variation-settings: 'wght' 700, 'CASL' 0.2, 'slnt' 0, 'MONO' 0;\n  letter-spacing: -0.025em;\n  line-height: 1.05;\n  text-wrap: balance;\n}\n.s340f p { text-wrap: pretty; }\n\n@keyframes s340f-fade-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }\n@keyframes s340f-text-grad { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }\n@keyframes s340f-shimmer { from { background-position: -200% 50%; } to { background-position: 200% 50%; } }\n@keyframes s340f-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }\n@keyframes s340f-tick { to { --s340f-clock: 1; } }\n@keyframes s340f-bird-fly { to { offset-distance: 100%; } }\n@keyframes s340f-cloud { from { transform: translateX(-140px); } to { transform: translateX(calc(100vw + 140px)); } }\n@keyframes s340f-halo-spin { to { --s340f-angle: 360deg; } }\n@keyframes s340f-type-breathe { from { font-variation-settings: 'wght' 400; } to { font-variation-settings: 'wght' 900; } }\n@keyframes s340f-bloom { from { opacity: 0; transform: translateX(-50%) scaleY(0.94); filter: blur(12px); } to { opacity: 1; transform: translateX(-50%) scaleY(1); filter: blur(5px); } }\n@keyframes s340f-mask-scan { to { --s340f-angle: 360deg; } }\n@keyframes s340f-cam-pan { 0%, 100% { transform: rotateY(-12deg); } 50% { transform: rotateY(12deg); } }\n\n@supports (animation-timeline: view()) {\n  .s340f-reveal { animation: s340f-fade-up 1.4s var(--ease-spring) both; animation-timeline: view(); animation-range: entry 5% cover 30%; }\n  .s340f-stagger \u003e * { animation: s340f-fade-up 1.4s var(--ease-spring) both; animation-timeline: view(); animation-range: entry 5% cover 30%; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .s340f *, .s340f *::before, .s340f *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition: none !important; }\n}\n\n.s340f-container { max-width: 1100px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 32px); }\n\n.s340f-nav { background: color-mix(in oklch, var(--paper) 92%, transparent); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); padding-block: 14px; position: sticky; top: 0; z-index: 100; border-bottom: 1px solid var(--line-soft); }\n.s340f-nav-inner { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; }\n.s340f-logo { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 700, 'CASL' 0.5, 'slnt' 0; font-size: clamp(15px, 2vw, 18px); letter-spacing: -0.01em; color: var(--ink); }\n.s340f-logo span { background: linear-gradient(135deg, var(--coral-deep), var(--amber-deep), var(--magenta-deep), var(--teal-deep)); background-size: 300% 300%; animation: s340f-text-grad 6s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s340f-nav-status { display: inline-flex; align-items: center; gap: 8px; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }\n.s340f-nav-dot { inline-size: 7px; block-size: 7px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 0 color-mix(in oklch, var(--mint) 50%, transparent); animation: s340f-mint-pulse 2.4s ease-in-out infinite; }\n@keyframes s340f-mint-pulse { 0%, 100% { box-shadow: 0 0 0 0 color-mix(in oklch, var(--mint) 50%, transparent); } 50% { box-shadow: 0 0 0 10px color-mix(in oklch, var(--mint) 0%, transparent); } }\n\n.s340f-hero { position: relative; background: var(--night-deep); overflow: hidden; isolation: isolate; }\n\n.s340f-stage {\n  --s340f-clock: 0;\n  animation: s340f-tick 40s linear infinite;\n  --sun-progress: max(0, sin(calc(var(--s340f-clock) * 360deg)));\n  --sun-x: calc(5% + var(--s340f-clock) * 180%);\n  --sun-y: calc(var(--sun-progress) * 70%);\n  --sun-vis: calc(var(--sun-progress) * 2.5);\n  --moon-progress: max(0, calc(-1 * sin(calc(var(--s340f-clock) * 360deg))));\n  --moon-x: calc(5% + (var(--s340f-clock) - 0.5) * 180%);\n  --moon-y: calc(var(--moon-progress) * 60%);\n  --moon-vis: calc(var(--moon-progress) * 2.5);\n  --night-vis: calc(var(--moon-progress) * 1.4);\n  --bird-vis: clamp(0, calc(var(--sun-progress) - 0.5), 1);\n  --sky-day-opacity: var(--sun-progress);\n  --sky-night-opacity: var(--moon-progress);\n  --twilight-bias: calc(1 - var(--sun-progress) - var(--moon-progress));\n  --sky-dawn-opacity: clamp(0, calc(var(--twilight-bias) * (1 - var(--s340f-clock) * 2)), 1);\n  --sky-dusk-opacity: clamp(0, calc(var(--twilight-bias) * (var(--s340f-clock) * 2 - 1)), 1);\n  --rays-vis: max(0, calc(1 - abs(calc(var(--s340f-clock) - 0.25)) * 10));\n  --storm-vis: max(0, calc(1 - abs(calc(var(--s340f-clock) - 0.42)) * 12));\n  --fog-dawn-vis: max(0, calc(1 - abs(var(--s340f-clock)) * 15));\n  --fog-dusk-vis: max(0, calc(1 - abs(calc(var(--s340f-clock) - 0.55)) * 14));\n  --fog-vis: max(var(--fog-dawn-vis), var(--fog-dusk-vis));\n  --aurora-vis: max(0, calc(1 - abs(calc(var(--s340f-clock) - 0.78)) * 9));\n  position: relative;\n  block-size: clamp(620px, 82vh, 820px);\n  inline-size: 100%;\n  overflow: hidden;\n}\n\n.s340f-sky { position: absolute; inset: 0; z-index: 0; pointer-events: none; }\n.s340f-sky-dawn { background: radial-gradient(ellipse 70% 40% at 30% 100%, color-mix(in oklch, var(--coral) 45%, transparent) 0%, transparent 70%), linear-gradient(180deg, var(--indigo-deep) 0%, var(--indigo) 22%, var(--magenta) 50%, var(--coral) 75%, var(--amber) 100%); opacity: var(--sky-dawn-opacity); }\n.s340f-sky-day { background: radial-gradient(ellipse 70% 40% at 50% 100%, color-mix(in oklch, var(--teal) 30%, transparent) 0%, transparent 70%), linear-gradient(180deg, oklch(60% 0.16 220) 0%, oklch(75% 0.10 215) 35%, oklch(85% 0.06 200) 70%, oklch(95% 0.03 80) 100%); opacity: var(--sky-day-opacity); }\n.s340f-sky-dusk { background: radial-gradient(ellipse 70% 50% at 70% 100%, color-mix(in oklch, var(--amber) 50%, transparent) 0%, transparent 70%), linear-gradient(180deg, var(--night) 0%, var(--indigo) 18%, var(--magenta) 38%, var(--coral) 65%, var(--amber) 92%, oklch(95% 0.1 80) 100%); opacity: var(--sky-dusk-opacity); }\n.s340f-sky-night { background: radial-gradient(ellipse 70% 50% at 50% 100%, color-mix(in oklch, var(--indigo) 50%, transparent) 0%, transparent 70%), linear-gradient(180deg, var(--night-deep) 0%, var(--night) 30%, oklch(22% 0.08 270) 60%, var(--indigo-deep) 100%); opacity: var(--sky-night-opacity); }\n\n.s340f-sun { position: absolute; left: var(--sun-x); bottom: var(--sun-y); translate: -50% 50%; inline-size: 90px; block-size: 90px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, oklch(98% 0.06 90) 0%, oklch(85% 0.14 80) 30%, var(--amber) 65%, var(--coral) 100%); box-shadow: 0 0 60px color-mix(in oklch, var(--amber) 60%, transparent), 0 0 120px color-mix(in oklch, var(--coral) 35%, transparent); opacity: var(--sun-vis); z-index: 1; pointer-events: none; }\n@media (max-width: 640px) { .s340f-sun { inline-size: 64px; block-size: 64px; } }\n\n.s340f-moon { position: absolute; left: var(--moon-x); bottom: var(--moon-y); translate: -50% 50%; inline-size: 70px; block-size: 70px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, oklch(98% 0.01 240) 0%, oklch(90% 0.02 240) 50%, oklch(78% 0.04 250) 100%); box-shadow: 0 0 40px color-mix(in oklch, oklch(90% 0.04 250) 50%, transparent), 0 0 80px color-mix(in oklch, oklch(75% 0.08 270) 25%, transparent); opacity: var(--moon-vis); z-index: 1; pointer-events: none; }\n.s340f-crater { position: absolute; border-radius: 50%; background: oklch(70% 0.04 270 \/ 0.4); }\n.s340f-crater:nth-child(1) { inline-size: 12px; block-size: 12px; top: 22px; left: 22px; }\n.s340f-crater:nth-child(2) { inline-size: 8px; block-size: 8px; top: 38px; left: 42px; }\n.s340f-crater:nth-child(3) { inline-size: 6px; block-size: 6px; top: 28px; left: 50px; }\n@media (max-width: 640px) { .s340f-moon { inline-size: 50px; block-size: 50px; } .s340f-crater { display: none; } }\n\n.s340f-starfield { position: absolute; top: 12%; left: 50%; inline-size: 1px; block-size: 1px; background: white; border-radius: 50%; opacity: var(--night-vis); pointer-events: none; z-index: 1; box-shadow: -560px 12px 0 white, -480px 38px 0 oklch(95% 0.05 80 \/ 0.7), -400px 8px 0 white, -320px 56px 0 oklch(90% 0.05 60 \/ 0.8), -240px 22px 0 white, -160px 42px 0 oklch(98% 0 0 \/ 0.9), -80px 18px 0 white, 0 32px 0 oklch(95% 0.05 80 \/ 0.6), 80px 14px 0 white, 160px 48px 0 oklch(98% 0.04 90 \/ 0.85), 240px 24px 0 white, 320px 58px 0 oklch(94% 0.05 70 \/ 0.7), 400px 18px 0 white, 480px 36px 0 oklch(92% 0.04 80 \/ 0.6), 560px 10px 0 white, -540px 88px 0 oklch(98% 0 0 \/ 0.8), -460px 122px 0 white, -380px 92px 0 oklch(94% 0.04 75 \/ 0.7), -300px 138px 0 white, -220px 102px 0 oklch(96% 0.03 60 \/ 0.65), -140px 128px 0 white, -60px 96px 0 oklch(90% 0.05 80 \/ 0.8), 20px 122px 0 white, 100px 88px 0 oklch(95% 0.04 70 \/ 0.7), 180px 138px 0 white, 260px 102px 0 oklch(93% 0.05 60 \/ 0.6), 340px 122px 0 white, 420px 92px 0 oklch(95% 0.04 80 \/ 0.85), 500px 138px 0 white, 580px 108px 0 oklch(94% 0.04 65 \/ 0.7), -520px 168px 0 white, -440px 198px 0 oklch(92% 0.04 75 \/ 0.7), -360px 182px 0 white, -280px 212px 0 oklch(96% 0.03 80 \/ 0.7), -200px 178px 0 white, -120px 218px 0 oklch(95% 0.04 70 \/ 0.65), -40px 188px 0 white, 40px 212px 0 oklch(94% 0.05 60 \/ 0.75), 120px 168px 0 white, 200px 218px 0 oklch(98% 0 0 \/ 0.85), 280px 188px 0 white, 360px 218px 0 oklch(94% 0.04 80 \/ 0.7), 440px 178px 0 white, 520px 208px 0 oklch(93% 0.04 65 \/ 0.6), -500px 248px 0 oklch(95% 0.04 70 \/ 0.7), -420px 278px 0 white, -340px 262px 0 oklch(92% 0.04 80 \/ 0.6), -260px 288px 0 white, -180px 258px 0 oklch(96% 0.03 60 \/ 0.7), -100px 282px 0 white, -20px 252px 0 oklch(95% 0.04 75 \/ 0.8), 60px 282px 0 white, 140px 252px 0 oklch(94% 0.05 65 \/ 0.65), 220px 282px 0 white, 300px 252px 0 oklch(95% 0.04 70 \/ 0.7), 380px 282px 0 white, 460px 248px 0 oklch(94% 0.04 80 \/ 0.75), 540px 278px 0 white; }\n\n.s340f-flare { position: absolute; border-radius: 50%; filter: blur(20px); mix-blend-mode: screen; pointer-events: none; z-index: 1; translate: -50% 50%; opacity: calc(var(--sun-vis) * var(--g-strength, 0.5)); }\n.s340f-flare-1 { --g-strength: 0.6; inline-size: 70px; block-size: 70px; left: calc(var(--sun-x) + 0.25 * (50% - var(--sun-x))); bottom: calc(var(--sun-y) + 0.25 * (50% - var(--sun-y))); background: radial-gradient(circle, oklch(85% 0.18 25 \/ 0.7) 0%, transparent 60%); }\n.s340f-flare-2 { --g-strength: 0.5; inline-size: 90px; block-size: 90px; left: calc(var(--sun-x) + 0.55 * (50% - var(--sun-x))); bottom: calc(var(--sun-y) + 0.55 * (50% - var(--sun-y))); background: radial-gradient(circle, oklch(82% 0.20 340 \/ 0.55) 0%, transparent 60%); }\n.s340f-flare-3 { --g-strength: 0.45; inline-size: 140px; block-size: 140px; left: 50%; bottom: 50%; background: radial-gradient(circle, oklch(95% 0.12 75 \/ 0.55) 0%, transparent 60%); }\n.s340f-flare-4 { --g-strength: 0.5; inline-size: 80px; block-size: 80px; left: calc(var(--sun-x) + 1.5 * (50% - var(--sun-x))); bottom: calc(var(--sun-y) + 1.5 * (50% - var(--sun-y))); background: radial-gradient(circle, oklch(75% 0.22 0 \/ 0.6) 0%, transparent 60%); }\n.s340f-flare-5 { --g-strength: 0.45; inline-size: 55px; block-size: 55px; left: calc(var(--sun-x) + 2 * (50% - var(--sun-x))); bottom: calc(var(--sun-y) + 2 * (50% - var(--sun-y))); background: radial-gradient(circle, oklch(70% 0.20 280 \/ 0.65) 0%, transparent 60%); }\n\n.s340f-cloud { position: absolute; block-size: 22px; border-radius: 100px; background: oklch(98% 0 0 \/ 0.55); z-index: 2; pointer-events: none; opacity: var(--sky-day-opacity); }\n.s340f-cloud::before, .s340f-cloud::after { content: ''; position: absolute; background: inherit; border-radius: 50%; }\n.s340f-cloud::before { inline-size: 60%; block-size: 160%; top: -50%; left: 16%; }\n.s340f-cloud::after { inline-size: 40%; block-size: 130%; top: -30%; left: 56%; }\n.s340f-c1 { top: 14%; inline-size: 70px; animation: s340f-cloud 80s linear infinite; }\n.s340f-c2 { top: 22%; inline-size: 60px; animation: s340f-cloud 110s linear infinite; animation-delay: -40s; }\n.s340f-c3 { top: 8%; inline-size: 80px; animation: s340f-cloud 95s linear infinite; animation-delay: -25s; }\n\n.s340f-bird { position: absolute; inset: 0; font-size: 16px; color: oklch(20% 0.05 250 \/ 0.75); offset-path: path('M -50 280 Q 200 100, 500 220 T 1200 240'); offset-rotate: auto; animation: s340f-bird-fly 18s linear infinite; z-index: 3; opacity: var(--bird-vis); pointer-events: none; }\n\n.s340f-tree { position: absolute; bottom: 22%; left: 4%; z-index: 4; }\n.s340f-tree-trunk { inline-size: 10px; block-size: 80px; background: linear-gradient(180deg, oklch(35% 0.05 50), oklch(25% 0.05 50)); margin-inline: auto; border-radius: 3px; }\n.s340f-tree-canopy { inline-size: 100px; block-size: 110px; background: radial-gradient(circle at 30% 30%, var(--mint) 0%, var(--teal-deep) 60%, oklch(35% 0.10 175) 100%); border-radius: 50%; margin-bottom: -15px; position: relative; box-shadow: -22px 12px 0 -8px oklch(40% 0.10 170), 22px 10px 0 -10px var(--teal-deep), -4px -22px 0 -14px var(--mint); }\n@media (max-width: 768px) { .s340f-tree { left: 1%; bottom: 22%; transform: scale(0.7); transform-origin: bottom left; } }\n\n.s340f-wall { position: absolute; inset-inline: 0; bottom: 0; block-size: 25%; background: linear-gradient(180deg, color-mix(in oklch, var(--paper-3) 100%, transparent) 0%, color-mix(in oklch, var(--paper-3) 92%, var(--ink-3)) 100%); z-index: 3; }\n.s340f-wall::before { content: ''; position: absolute; top: 0; left: 0; right: 0; block-size: 14px; background: linear-gradient(180deg, oklch(0% 0 0 \/ 0.12), transparent); pointer-events: none; }\n\n.s340f-godrays { position: absolute; left: var(--sun-x); bottom: var(--sun-y); inline-size: 1100px; block-size: 1100px; translate: -50% 50%; background: radial-gradient(circle at center, color-mix(in oklch, var(--amber) 35%, transparent) 0%, color-mix(in oklch, var(--amber) 12%, transparent) 12%, transparent 25%), conic-gradient(from var(--godray-from) at center, transparent 0deg, color-mix(in oklch, var(--amber) 38%, transparent) 2deg, transparent 5deg, transparent 19deg, color-mix(in oklch, var(--amber) 30%, transparent) 22deg, transparent 25deg, transparent 39deg, color-mix(in oklch, var(--amber) 35%, transparent) 42deg, transparent 45deg, transparent 59deg, color-mix(in oklch, var(--amber) 28%, transparent) 62deg, transparent 65deg, transparent 79deg, color-mix(in oklch, var(--amber) 34%, transparent) 82deg, transparent 85deg, transparent 99deg, color-mix(in oklch, var(--amber) 30%, transparent) 102deg, transparent 105deg, transparent 119deg, color-mix(in oklch, var(--amber) 36%, transparent) 122deg, transparent 125deg, transparent 139deg, color-mix(in oklch, var(--amber) 28%, transparent) 142deg, transparent 145deg, transparent 159deg, color-mix(in oklch, var(--amber) 34%, transparent) 162deg, transparent 165deg, transparent 179deg, color-mix(in oklch, var(--amber) 32%, transparent) 182deg, transparent 185deg, transparent 199deg, color-mix(in oklch, var(--amber) 36%, transparent) 202deg, transparent 205deg, transparent 219deg, color-mix(in oklch, var(--amber) 28%, transparent) 222deg, transparent 225deg, transparent 239deg, color-mix(in oklch, var(--amber) 34%, transparent) 242deg, transparent 245deg, transparent 259deg, color-mix(in oklch, var(--amber) 30%, transparent) 262deg, transparent 265deg, transparent 279deg, color-mix(in oklch, var(--amber) 36%, transparent) 282deg, transparent 285deg, transparent 299deg, color-mix(in oklch, var(--amber) 28%, transparent) 302deg, transparent 305deg, transparent 319deg, color-mix(in oklch, var(--amber) 34%, transparent) 322deg, transparent 325deg, transparent 339deg, color-mix(in oklch, var(--amber) 30%, transparent) 342deg, transparent 345deg, transparent 360deg); mix-blend-mode: screen; filter: blur(1.5px); opacity: calc(var(--rays-vis) * var(--sun-vis)); z-index: 1; pointer-events: none; animation: s340f-rays-spin 90s linear infinite; }\n@keyframes s340f-rays-spin { to { --godray-from: 360deg; } }\n\n.s340f-storm-clouds { position: absolute; inset: 0; background: radial-gradient(ellipse 80% 60% at 50% 20%, oklch(20% 0.03 250 \/ 0.85) 0%, transparent 70%), linear-gradient(180deg, oklch(25% 0.04 250) 0%, oklch(40% 0.03 250) 50%, transparent 100%); opacity: calc(var(--storm-vis) * 0.7); z-index: 2; pointer-events: none; }\n\n.s340f-storm-cloud { position: absolute; border-radius: 100px; background: oklch(16% 0.04 260); z-index: 2; pointer-events: none; filter: blur(6px); }\n.s340f-storm-cloud::before, .s340f-storm-cloud::after { content: ''; position: absolute; background: inherit; border-radius: 50%; }\n.s340f-storm-cloud::before { inline-size: 70%; block-size: 200%; top: -65%; left: 10%; }\n.s340f-storm-cloud::after { inline-size: 55%; block-size: 170%; top: -50%; left: 50%; }\n.s340f-sc1 { top: 4%; left: 6%; inline-size: 260px; block-size: 56px; opacity: calc(var(--storm-vis) * 0.95); animation: s340f-storm-drift-a 55s linear infinite; }\n.s340f-sc2 { top: 14%; left: 28%; inline-size: 320px; block-size: 70px; opacity: var(--storm-vis); animation: s340f-storm-drift-b 75s linear infinite; }\n.s340f-sc3 { top: 2%; left: 52%; inline-size: 240px; block-size: 50px; opacity: calc(var(--storm-vis) * 0.9); animation: s340f-storm-drift-a 65s linear infinite -25s; }\n.s340f-sc4 { top: 17%; left: 68%; inline-size: 300px; block-size: 60px; opacity: calc(var(--storm-vis) * 0.85); animation: s340f-storm-drift-b 85s linear infinite -35s; }\n.s340f-sc5 { top: 7%; left: 84%; inline-size: 220px; block-size: 48px; opacity: calc(var(--storm-vis) * 0.9); animation: s340f-storm-drift-a 70s linear infinite -45s; }\n.s340f-sc6 { top: 22%; left: 12%; inline-size: 280px; block-size: 50px; opacity: calc(var(--storm-vis) * 0.65); animation: s340f-storm-drift-b 95s linear infinite -15s; background: oklch(25% 0.04 260); filter: blur(10px); }\n.s340f-sc7 { top: 25%; left: 50%; inline-size: 260px; block-size: 48px; opacity: calc(var(--storm-vis) * 0.6); animation: s340f-storm-drift-a 100s linear infinite -55s; background: oklch(28% 0.04 260); filter: blur(12px); }\n\n@keyframes s340f-storm-drift-a { 0%, 100% { transform: translateX(-40px); } 50% { transform: translateX(40px); } }\n@keyframes s340f-storm-drift-b { 0%, 100% { transform: translateX(30px); } 50% { transform: translateX(-30px); } }\n\n.s340f-rain { position: absolute; inset: 0; z-index: 4; pointer-events: none; opacity: var(--storm-vis); overflow: hidden; }\n.s340f-drop { position: absolute; left: var(--x); top: -10%; inline-size: 1.5px; block-size: var(--len, 20px); background: linear-gradient(180deg, transparent 0%, oklch(88% 0.04 230 \/ 0.4) 30%, oklch(92% 0.05 230 \/ 0.85) 80%, oklch(98% 0.04 230 \/ 0.95) 100%); border-radius: 1px; transform: rotate(10deg); filter: blur(0.4px); animation: s340f-drop-fall var(--s, 0.7s) linear var(--d, 0s) infinite; mix-blend-mode: screen; }\n@keyframes s340f-drop-fall { 0% { top: -10%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { top: 110%; opacity: 0; } }\n\n.s340f-lightning { position: absolute; inset: 0; background: linear-gradient(180deg, oklch(98% 0.04 220) 0%, oklch(94% 0.05 230) 30%, transparent 70%); opacity: 0; z-index: 5; pointer-events: none; mix-blend-mode: screen; animation: s340f-lightning-flash 40s steps(1, end) infinite; }\n@keyframes s340f-lightning-flash { 0%, 36%, 36.4%, 37%, 37.3%, 39%, 39.3%, 41%, 41.3%, 100% { opacity: 0; } 36.2%, 37.2%, 39.2%, 41.2% { opacity: calc(var(--storm-vis) * 0.85); } }\n\n.s340f-aurora { position: absolute; inset-inline: -10%; top: -5%; block-size: 60%; background: linear-gradient(180deg, transparent 0%, color-mix(in oklch, var(--mint) 38%, transparent) 18%, color-mix(in oklch, var(--teal) 32%, transparent) 38%, color-mix(in oklch, var(--indigo) 24%, transparent) 60%, transparent 85%); filter: blur(28px); mix-blend-mode: screen; opacity: var(--aurora-vis); z-index: 1; pointer-events: none; transform-origin: center top; animation: s340f-aurora-wave 11s ease-in-out infinite; }\n@keyframes s340f-aurora-wave { 0%, 100% { transform: scaleY(1) skewX(-5deg); filter: blur(28px) hue-rotate(0deg); } 50% { transform: scaleY(1.12) skewX(5deg); filter: blur(34px) hue-rotate(25deg); } }\n\n.s340f-aurora-2 { position: absolute; inset-inline: -5%; top: 3%; block-size: 45%; background: linear-gradient(180deg, transparent 0%, color-mix(in oklch, var(--magenta) 22%, transparent) 30%, color-mix(in oklch, var(--indigo) 18%, transparent) 65%, transparent 90%); filter: blur(36px); mix-blend-mode: screen; opacity: calc(var(--aurora-vis) * 0.7); z-index: 1; pointer-events: none; animation: s340f-aurora-wave-2 14s ease-in-out infinite; }\n@keyframes s340f-aurora-wave-2 { 0%, 100% { transform: scaleY(1) skewX(4deg) translateX(-2%); } 50% { transform: scaleY(0.92) skewX(-4deg) translateX(2%); } }\n\n.s340f-fog { position: absolute; inset-inline: -5%; bottom: 22%; block-size: 38%; background: linear-gradient(180deg, transparent 0%, oklch(88% 0.02 80 \/ 0.45) 35%, oklch(84% 0.03 80 \/ 0.55) 65%, oklch(86% 0.02 80 \/ 0.35) 90%, transparent 100%); filter: blur(20px); opacity: var(--fog-vis); z-index: 3; pointer-events: none; animation: s340f-fog-drift 28s ease-in-out infinite; }\n@keyframes s340f-fog-drift { 0%, 100% { transform: translateX(-3%) scaleX(1); } 50% { transform: translateX(3%) scaleX(1.04); } }\n\n.s340f-tree-canopy { transform-origin: bottom center; animation: s340f-tree-sway 4s ease-in-out infinite; }\n@keyframes s340f-tree-sway { 0%, 100% { transform: rotate(calc(-2deg - var(--storm-vis, 0) * 4deg)); } 50% { transform: rotate(calc(2deg + var(--storm-vis, 0) * 4deg)); } }\n\n.s340f-camera-scene { position: absolute; bottom: 25%; right: 14%; perspective: 1200px; z-index: 6; cursor: pointer; }\n.s340f-camera-3d { position: relative; inline-size: 90px; block-size: 78px; transform-style: preserve-3d; transition: transform 1.4s var(--ease-spring); animation: s340f-cam-pan 10s ease-in-out infinite; }\n.s340f-camera-scene:hover .s340f-camera-3d { animation-play-state: paused; transform: rotateY(24deg) rotateX(-12deg); }\n.s340f-cam-mount { inline-size: 8px; block-size: 18px; background: linear-gradient(180deg, oklch(60% 0.02 250), oklch(40% 0.02 250)); margin-inline: auto; border-radius: 2px 2px 0 0; transform: translateZ(-10px); }\n.s340f-cam-body { position: relative; inline-size: 72px; block-size: 56px; margin-inline: auto; background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%); border-radius: 22% 22% 28% 28% \/ 26% 26% 32% 32%; border: 1px solid color-mix(in oklch, var(--ink) 12%, transparent); box-shadow: 0 4px 12px oklch(0% 0 0 \/ 0.2), inset 0 -2px 0 oklch(0% 0 0 \/ 0.06); transform: translateZ(0); }\n.s340f-cam-lens { position: absolute; top: 30%; inline-size: 22px; block-size: 22px; background: radial-gradient(circle at 35% 35%, oklch(40% 0.02 250) 0%, oklch(20% 0.02 250) 50%, oklch(8% 0.02 250) 100%); border-radius: 50%; border: 2px solid oklch(45% 0.02 250); transform: translateZ(20px); box-shadow: inset 0 0 4px oklch(0% 0 0 \/ 0.4); }\n.s340f-cam-lens-wide { left: 18%; }\n.s340f-cam-lens-tele { right: 18%; inline-size: 18px; block-size: 18px; top: 33%; }\n.s340f-cam-lens::after { content: ''; position: absolute; inline-size: 5px; block-size: 5px; background: oklch(98% 0 0 \/ 0.4); border-radius: 50%; top: 3px; left: 3px; }\n.s340f-cam-led { position: absolute; top: 6px; left: 50%; transform: translate(-50%, 0) translateZ(22px); inline-size: 5px; block-size: 5px; border-radius: 50%; background: color-mix(in oklch, var(--mint) calc(100% - var(--night-vis) * 100%), var(--coral)); box-shadow: 0 0 8px currentColor, 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent); color: color-mix(in oklch, var(--mint) calc(100% - var(--night-vis) * 100%), var(--coral)); }\n@media (max-width: 640px) { .s340f-camera-scene { right: 8%; bottom: 24%; } }\n\n.s340f-spotlight { position: absolute; top: 65%; left: 50%; inline-size: 320px; block-size: 280px; transform: translateX(-50%); background: linear-gradient(180deg, color-mix(in oklch, var(--amber) 60%, transparent) 0%, color-mix(in oklch, var(--amber) 35%, transparent) 35%, color-mix(in oklch, var(--amber) 12%, transparent) 75%, transparent 100%); clip-path: polygon(46% 0%, 54% 0%, 100% 100%, 0% 100%); filter: blur(6px); z-index: 5; pointer-events: none; opacity: var(--night-vis); mix-blend-mode: screen; }\n.s340f-spotlight-pool { position: absolute; bottom: -120px; left: 50%; inline-size: 240px; block-size: 30px; transform: translateX(-50%); background: radial-gradient(ellipse, color-mix(in oklch, var(--amber) 55%, transparent) 0%, transparent 70%); filter: blur(10px); z-index: 4; pointer-events: none; opacity: var(--night-vis); mix-blend-mode: screen; }\n@media (max-width: 640px) { .s340f .s340f-spotlight { inline-size: 240px; block-size: 220px; } .s340f .s340f-spotlight-pool { inline-size: 180px; bottom: -100px; } }\n\n.s340f-grain { position: absolute; inset: 0; filter: url(#s340f-grain-filter); pointer-events: none; z-index: 10; opacity: 0.18; mix-blend-mode: overlay; }\n\n.s340f-status { position: absolute; background: oklch(99% 0 0 \/ 0.96); backdrop-filter: blur(10px); padding: 7px 14px; border-radius: 12px; display: flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink); box-shadow: 0 8px 24px oklch(0% 0 0 \/ 0.2); z-index: 8; white-space: nowrap; }\n.s340f-status-dot { inline-size: 8px; block-size: 8px; border-radius: 50%; flex-shrink: 0; }\n.s340f-status.solar { bottom: 19%; right: 16%; }\n.s340f-status.solar .s340f-status-dot { background: color-mix(in oklch, oklch(70% 0.01 250) calc((1 - var(--sun-vis)) * 100%), var(--amber)); box-shadow: 0 0 calc(var(--sun-vis) * 12px) var(--amber), 0 0 0 calc(var(--sun-vis) * 4px) color-mix(in oklch, var(--amber) 22%, transparent); }\n.s340f-status.spot { bottom: 14%; right: 16%; }\n.s340f-status.spot .s340f-status-dot { background: color-mix(in oklch, oklch(70% 0.01 250) calc((1 - var(--night-vis)) * 100%), var(--magenta)); box-shadow: 0 0 calc(var(--night-vis) * 12px) var(--magenta), 0 0 0 calc(var(--night-vis) * 4px) color-mix(in oklch, var(--magenta) 25%, transparent); }\n@media (max-width: 640px) { .s340f-status { font-size: 10px; padding: 5px 10px; } .s340f-status.solar { bottom: 20%; right: 4%; } .s340f-status.spot { bottom: 14%; right: 4%; } }\n\n.s340f-hero-overlay { position: absolute; inset: 0; z-index: 9; display: flex; align-items: center; pointer-events: none; }\n.s340f-hero-text { inline-size: 100%; padding: 0 clamp(20px, 4vw, 40px); max-inline-size: 1100px; margin-inline: auto; pointer-events: auto; }\n.s340f-hero-eyebrow { display: inline-flex; align-items: center; gap: 10px; background: color-mix(in oklch, var(--paper) 88%, transparent); backdrop-filter: blur(12px); border: 1px solid color-mix(in oklch, var(--paper) 50%, transparent); border-radius: 999px; padding: 8px 16px; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-2); margin-bottom: 22px; box-shadow: 0 4px 16px oklch(0% 0 0 \/ 0.08); }\n.s340f-hero-eyebrow::before { content: ''; inline-size: 6px; block-size: 6px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 6px var(--coral); }\n\n.s340f-hero h1 { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 800, 'CASL' 0.3, 'slnt' 0, 'MONO' 0; font-size: clamp(2.6rem, 8vw, 5.5rem); letter-spacing: -0.04em; line-height: 0.96; color: var(--paper); margin-bottom: 22px; text-shadow: 0 4px 30px oklch(0% 0 0 \/ 0.45); }\n.s340f-hero h1 em { font-style: normal; background: linear-gradient(135deg, var(--amber), var(--coral), var(--magenta), var(--amber)); background-size: 300% 300%; animation: s340f-text-grad 6s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-variation-settings: 'wght' 900, 'CASL' 0.5, 'slnt' -4, 'MONO' 0; }\n\n@supports (animation-timeline: view()) { .s340f-hero h1 em { animation: s340f-type-breathe 1.6s linear both; animation-timeline: view(); animation-range: entry 0% cover 40%; } }\n\n.s340f-hero-sub { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 350, 'CASL' 0.4, 'slnt' 0; font-size: clamp(15px, 2vw, 20px); color: oklch(94% 0.01 80 \/ 0.92); max-inline-size: 480px; line-height: 1.5; margin-bottom: 26px; text-shadow: 0 2px 12px oklch(0% 0 0 \/ 0.5); }\n.s340f-hero-sub strong { background: linear-gradient(135deg, var(--amber), var(--coral)); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-variation-settings: 'wght' 700, 'CASL' 0.6; }\n.s340f-hero-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.s340f-hero-pill { display: inline-flex; align-items: center; gap: 6px; background: color-mix(in oklch, var(--paper) 12%, transparent); backdrop-filter: blur(10px); border: 1px solid color-mix(in oklch, var(--paper) 22%, transparent); color: var(--paper); font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; padding: 8px 14px; border-radius: 999px; }\n.s340f-hero-pill.amber { color: color-mix(in oklch, var(--amber) 80%, white); border-color: color-mix(in oklch, var(--amber) 35%, transparent); }\n.s340f-hero-pill.coral { color: color-mix(in oklch, var(--coral) 80%, white); border-color: color-mix(in oklch, var(--coral) 35%, transparent); }\n.s340f-hero-pill.mint { color: color-mix(in oklch, var(--mint) 80%, white); border-color: color-mix(in oklch, var(--mint) 40%, transparent); }\n.s340f-hero-pill.magenta { color: color-mix(in oklch, var(--magenta) 80%, white); border-color: color-mix(in oklch, var(--magenta) 35%, transparent); }\n\n.s340f-strip { background: linear-gradient(90deg, var(--coral-deep), var(--amber-deep), var(--magenta-deep), var(--teal-deep), var(--indigo-deep), var(--coral-deep)); background-size: 400% 100%; animation: s340f-shimmer 18s linear infinite; padding-block: 14px; color: var(--paper); overflow: hidden; }\n.s340f-strip-track { display: inline-flex; gap: 36px; white-space: nowrap; animation: s340f-marquee 42s linear infinite; padding-inline-start: 100%; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.18em; font-weight: 600; text-transform: uppercase; }\n.s340f-strip-track span { display: inline-flex; align-items: center; gap: 12px; }\n.s340f-strip-track span::after { content: '◆'; color: oklch(98% 0.05 80); font-size: 8px; }\n\n.s340f-section { padding-block: clamp(64px, 10vh, 120px); }\n\n.s340f-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; margin-bottom: 14px; display: inline-flex; align-items: center; gap: 10px; }\n.s340f-eyebrow::before { content: ''; inline-size: 22px; block-size: 1px; background: currentColor; }\n.s340f-eyebrow.coral { color: var(--coral-deep); }\n.s340f-eyebrow.amber { color: var(--amber-deep); }\n.s340f-eyebrow.magenta { color: var(--magenta-deep); }\n.s340f-eyebrow.teal { color: var(--teal-deep); }\n.s340f-eyebrow.mint { color: var(--mint-deep); }\n.s340f-eyebrow.indigo { color: var(--indigo-deep); }\n.s340f-eyebrow.muted { color: var(--ink-3); }\n\n.s340f-h2 { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 800, 'CASL' 0.3, 'slnt' 0; font-size: clamp(2rem, 5vw, 3.8rem); letter-spacing: -0.035em; line-height: 1.02; color: var(--ink); margin-bottom: 20px; }\n.s340f-h2 em { font-style: normal; font-variation-settings: 'wght' 900, 'CASL' 0.7, 'slnt' -4; background: linear-gradient(135deg, var(--coral-deep), var(--amber-deep), var(--magenta-deep)); background-size: 200% 200%; animation: s340f-text-grad 6s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s340f-h2.cool em { background: linear-gradient(135deg, var(--teal-deep), var(--indigo-deep), var(--mint-deep)); background-size: 200% 200%; animation: s340f-text-grad 6s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s340f-deck { font-size: clamp(15px, 1.8vw, 18px); color: var(--ink-2); max-inline-size: 580px; line-height: 1.65; margin-bottom: 48px; }\n.s340f-deck strong { color: var(--ink); font-weight: 600; }\n\n\/* FACTORY SEALED BADGE — for brand new condition *\/\n.s340f-sealed { background: linear-gradient(180deg, var(--paper-2) 0%, var(--paper) 100%); border-block: 1px solid var(--line-soft); }\n.s340f-sealed-card { max-width: 880px; margin-inline: auto; background: var(--paper); border: 1px solid var(--line); border-radius: 26px; padding: clamp(32px, 5vw, 48px); position: relative; overflow: hidden; box-shadow: 0 20px 50px oklch(0% 0 0 \/ 0.04); }\n.s340f-sealed-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; block-size: 4px; background: linear-gradient(90deg, var(--mint), var(--teal), var(--mint-deep)); background-size: 200% 100%; animation: s340f-shimmer 4s linear infinite; }\n.s340f-sealed-card h2 { margin-bottom: 16px; }\n.s340f-sealed-card p { font-size: clamp(15px, 1.7vw, 17px); color: var(--ink-2); line-height: 1.7; margin-bottom: 14px; max-inline-size: 720px; }\n.s340f-sealed-card p:last-of-type { margin-bottom: 0; }\n.s340f-sealed-card strong { color: var(--ink); font-weight: 600; }\n.s340f-sealed-stamps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 22px; }\n@media (min-width: 600px) { .s340f .s340f-sealed-stamps { grid-template-columns: repeat(4, 1fr); } }\n.s340f-sealed-stamp { padding: 16px 14px; border: 1px solid var(--line); border-radius: 14px; text-align: center; background: var(--paper-2); transition: transform 0.4s var(--ease-spring); }\n.s340f-sealed-stamp:hover { transform: translateY(-2px); }\n.s340f-sealed-stamp:nth-child(1) { background: color-mix(in oklch, var(--mint) 10%, var(--paper)); border-color: color-mix(in oklch, var(--mint) 22%, transparent); }\n.s340f-sealed-stamp:nth-child(2) { background: color-mix(in oklch, var(--teal) 10%, var(--paper)); border-color: color-mix(in oklch, var(--teal) 22%, transparent); }\n.s340f-sealed-stamp:nth-child(3) { background: color-mix(in oklch, var(--amber) 11%, var(--paper)); border-color: color-mix(in oklch, var(--amber) 24%, transparent); }\n.s340f-sealed-stamp:nth-child(4) { background: color-mix(in oklch, var(--coral) 9%, var(--paper)); border-color: color-mix(in oklch, var(--coral) 20%, transparent); }\n.s340f-sealed-stamp-icon { font-size: 22px; margin-bottom: 6px; line-height: 1; display: block; }\n.s340f-sealed-stamp-h { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 700, 'CASL' 0.3; font-size: 13px; color: var(--ink); letter-spacing: -0.01em; margin-bottom: 3px; }\n.s340f-sealed-stamp-d { font-size: 11.5px; color: var(--ink-3); line-height: 1.4; }\n\n\/* DUAL LENS SHOWCASE — replaces battery viz, highlights the S340's USP *\/\n.s340f-bigidea { background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%); position: relative; overflow: hidden; }\n.s340f-bigidea::before { content: ''; position: absolute; top: -100px; right: -100px; inline-size: 500px; block-size: 500px; border-radius: 50%; background: radial-gradient(circle, color-mix(in oklch, var(--amber) 25%, transparent), transparent 70%); pointer-events: none; }\n.s340f-bigidea::after { content: ''; position: absolute; bottom: -100px; left: -100px; inline-size: 500px; block-size: 500px; border-radius: 50%; background: radial-gradient(circle, color-mix(in oklch, var(--coral) 18%, transparent), transparent 70%); pointer-events: none; }\n.s340f-bv-grid { position: relative; z-index: 2; display: grid; gap: clamp(32px, 5vw, 60px); max-width: 1080px; margin-inline: auto; }\n@media (min-width: 820px) { .s340f .s340f-bv-grid { grid-template-columns: 0.9fr 1.1fr; align-items: center; } }\n.s340f-bigidea-text p { font-size: clamp(16px, 1.9vw, 19px); color: var(--ink-2); line-height: 1.7; margin-bottom: 12px; }\n.s340f-bigidea-text strong { color: var(--ink); font-weight: 600; }\n\n\/* Dual lens visualisation card *\/\n.s340f-dual-card { position: relative; background: linear-gradient(135deg, oklch(97% 0.012 80) 0%, oklch(99% 0.005 80) 100%); border: 1px solid var(--line); border-radius: 26px; padding: clamp(28px, 4vw, 44px); overflow: hidden; box-shadow: 0 20px 50px oklch(0% 0 0 \/ 0.06); }\n.s340f-dual-card::before { content: ''; position: absolute; top: -80px; right: -80px; inline-size: 280px; block-size: 280px; border-radius: 50%; background: radial-gradient(circle, color-mix(in oklch, var(--coral) 25%, transparent) 0%, transparent 60%); pointer-events: none; animation: s340f-bv-halo 5s ease-in-out infinite; }\n@keyframes s340f-bv-halo { 0%, 100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } }\n.s340f-dual-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--coral-deep); margin-bottom: 12px; }\n.s340f-dual-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 22px; position: relative; z-index: 2; }\n.s340f-dual-lens { padding: 22px 18px; border: 1.5px solid; border-radius: 18px; text-align: center; position: relative; overflow: hidden; }\n.s340f-dual-lens.wide { background: linear-gradient(135deg, color-mix(in oklch, var(--coral) 16%, var(--paper)), color-mix(in oklch, var(--amber) 10%, var(--paper))); border-color: color-mix(in oklch, var(--coral) 30%, transparent); }\n.s340f-dual-lens.tele { background: linear-gradient(135deg, color-mix(in oklch, var(--magenta) 14%, var(--paper)), color-mix(in oklch, var(--indigo) 8%, var(--paper))); border-color: color-mix(in oklch, var(--magenta) 25%, transparent); }\n.s340f-dual-lens-num { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 800, 'CASL' 0.5, 'slnt' -6; font-size: clamp(2.4rem, 6vw, 3.6rem); letter-spacing: -0.04em; line-height: 0.85; margin-bottom: 4px; }\n.s340f-dual-lens.wide .s340f-dual-lens-num { background: linear-gradient(135deg, var(--coral-deep), var(--amber-deep)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s340f-dual-lens.tele .s340f-dual-lens-num { background: linear-gradient(135deg, var(--magenta-deep), var(--indigo-deep)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s340f-dual-lens-lbl { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-2); margin-bottom: 4px; }\n.s340f-dual-lens-desc { font-size: 12px; color: var(--ink-3); line-height: 1.4; }\n\n\/* Animated 8× zoom bar *\/\n.s340f-zoom-bar { position: relative; inline-size: 100%; block-size: 36px; background: var(--paper-3); border-radius: 10px; overflow: hidden; margin-bottom: 12px; border: 1px solid var(--line); display: flex; align-items: center; padding: 0 14px; gap: 8px; }\n.s340f-zoom-bar-lbl { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 700; letter-spacing: 0.1em; color: var(--ink-3); flex-shrink: 0; }\n.s340f-zoom-bar-track { flex: 1; height: 6px; background: var(--paper-3); border-radius: 3px; position: relative; overflow: hidden; border: 1px solid color-mix(in oklch, var(--ink) 8%, transparent); }\n.s340f-zoom-bar-fill { position: absolute; top: 0; bottom: 0; left: 0; background: linear-gradient(90deg, var(--coral), var(--magenta), var(--indigo)); border-radius: 3px; animation: s340f-zoom-pulse 5s ease-in-out infinite; box-shadow: 0 0 8px color-mix(in oklch, var(--magenta) 50%, transparent); }\n@keyframes s340f-zoom-pulse { 0%, 100% { inline-size: 12%; } 50% { inline-size: 100%; } }\n.s340f-zoom-bar-val { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 800; font-size: 14px; color: var(--ink); flex-shrink: 0; min-inline-size: 32px; text-align: end; }\n@property --zoom-x { syntax: '\u003cinteger\u003e'; inherits: false; initial-value: 1; }\n.s340f-zoom-bar-val { counter-reset: zoom var(--zoom-x); animation: s340f-zoom-count 5s ease-in-out infinite; }\n.s340f-zoom-bar-val::before { content: counter(zoom) \"×\"; }\n@keyframes s340f-zoom-count { 0%, 100% { --zoom-x: 1; } 50% { --zoom-x: 8; } }\n@supports not (counter-reset: x var(--y)) { .s340f-zoom-bar-val { animation: none; } .s340f-zoom-bar-val::before { content: \"8×\"; } }\n\n\/* 360° pan indicator *\/\n.s340f-pan-bar { display: flex; align-items: center; gap: 10px; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: var(--ink-2); }\n.s340f-pan-arc { flex: 1; height: 8px; border-radius: 4px; background: linear-gradient(90deg, color-mix(in oklch, var(--teal) 60%, transparent), color-mix(in oklch, var(--mint) 60%, transparent), color-mix(in oklch, var(--teal) 60%, transparent)); position: relative; overflow: hidden; }\n.s340f-pan-arc::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, oklch(98% 0 0 \/ 0.7) 50%, transparent 100%); inline-size: 30%; animation: s340f-pan-sweep 6s linear infinite; }\n@keyframes s340f-pan-sweep { from { transform: translateX(-100%); } to { transform: translateX(400%); } }\n.s340f-pan-deg { color: var(--teal-deep); }\n\n.s340f-features { background: var(--paper); }\n.s340f-feat-head { text-align: center; margin-bottom: 56px; }\n.s340f-feat-head .s340f-deck { margin-inline: auto; }\n.s340f-feat-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }\n@media (min-width: 700px) { .s340f .s340f-feat-grid { grid-template-columns: repeat(2, 1fr); } }\n@media (min-width: 1000px) { .s340f .s340f-feat-grid { grid-template-columns: repeat(3, 1fr); } }\n.s340f-feat { background: var(--paper); border: 1px solid var(--line); border-radius: 22px; padding: 30px 28px; position: relative; overflow: hidden; transition: transform 0.5s var(--ease-spring), box-shadow 0.4s ease, border-color 0.3s ease; isolation: isolate; container-type: inline-size; }\n.s340f-feat::before { content: ''; position: absolute; top: -60px; right: -60px; inline-size: 180px; block-size: 180px; border-radius: 50%; z-index: -1; }\n.s340f-feat.coral::before { background: radial-gradient(circle, color-mix(in oklch, var(--coral) 16%, transparent), transparent 70%); }\n.s340f-feat.amber::before { background: radial-gradient(circle, color-mix(in oklch, var(--amber) 18%, transparent), transparent 70%); }\n.s340f-feat.magenta::before { background: radial-gradient(circle, color-mix(in oklch, var(--magenta) 14%, transparent), transparent 70%); }\n.s340f-feat.teal::before { background: radial-gradient(circle, color-mix(in oklch, var(--teal) 16%, transparent), transparent 70%); }\n.s340f-feat.indigo::before { background: radial-gradient(circle, color-mix(in oklch, var(--indigo) 14%, transparent), transparent 70%); }\n.s340f-feat.mint::before { background: radial-gradient(circle, color-mix(in oklch, var(--mint) 18%, transparent), transparent 70%); }\n.s340f-feat:hover { transform: translateY(-4px); box-shadow: 0 20px 50px oklch(0% 0 0 \/ 0.08); border-color: color-mix(in oklch, var(--ink) 12%, transparent); }\n.s340f-feat-grid:has(.s340f-feat:nth-child(1):hover) .s340f-feat:nth-child(2) { transform: translateX(-3px) rotate(-0.4deg); }\n.s340f-feat-grid:has(.s340f-feat:nth-child(2):hover) .s340f-feat:nth-child(1) { transform: translateX(3px) rotate(0.4deg); }\n.s340f-feat-grid:has(.s340f-feat:nth-child(2):hover) .s340f-feat:nth-child(3) { transform: translateX(-3px) rotate(-0.4deg); }\n.s340f-feat-grid:has(.s340f-feat:nth-child(3):hover) .s340f-feat:nth-child(2) { transform: translateX(3px) rotate(0.4deg); }\n.s340f-feat-grid:has(.s340f-feat:nth-child(4):hover) .s340f-feat:nth-child(5) { transform: translateX(-3px) rotate(-0.4deg); }\n.s340f-feat-grid:has(.s340f-feat:nth-child(5):hover) .s340f-feat:nth-child(4) { transform: translateX(3px) rotate(0.4deg); }\n.s340f-feat-grid:has(.s340f-feat:nth-child(5):hover) .s340f-feat:nth-child(6) { transform: translateX(-3px) rotate(-0.4deg); }\n.s340f-feat-grid:has(.s340f-feat:nth-child(6):hover) .s340f-feat:nth-child(5) { transform: translateX(3px) rotate(0.4deg); }\n.s340f-feat-icon { inline-size: 48px; block-size: 48px; border-radius: 14px; display: grid; place-items: center; margin-bottom: 18px; font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 800, 'MONO' 1; font-size: 17px; color: var(--paper); position: relative; isolation: isolate; }\n.s340f-feat.coral .s340f-feat-icon { background: linear-gradient(135deg, var(--coral), var(--coral-deep)); }\n.s340f-feat.amber .s340f-feat-icon { background: linear-gradient(135deg, var(--amber), var(--amber-deep)); }\n.s340f-feat.magenta .s340f-feat-icon { background: linear-gradient(135deg, var(--magenta), var(--magenta-deep)); }\n.s340f-feat.teal .s340f-feat-icon { background: linear-gradient(135deg, var(--teal), var(--teal-deep)); }\n.s340f-feat.indigo .s340f-feat-icon { background: linear-gradient(135deg, var(--indigo), var(--indigo-deep)); }\n.s340f-feat.mint .s340f-feat-icon { background: linear-gradient(135deg, var(--mint), var(--mint-deep)); }\n.s340f-feat.coral .s340f-feat-icon::before, .s340f-feat.coral .s340f-feat-icon::after { content: ''; position: absolute; inset: 20%; border: 1.5px solid var(--paper); border-radius: 50%; opacity: 0; z-index: 0; animation: s340f-focus-pulse 2.6s ease-out infinite; pointer-events: none; }\n.s340f-feat.coral .s340f-feat-icon::after { animation-delay: 1.3s; }\n@keyframes s340f-focus-pulse { 0% { transform: scale(0.4); opacity: 0; } 20% { opacity: 0.85; } 100% { transform: scale(2); opacity: 0; } }\n.s340f-feat.amber .s340f-feat-icon::before { content: ''; position: absolute; inset: -60%; background: conic-gradient(from 0deg, transparent 0deg, oklch(98% 0.05 90 \/ 0.45) 3deg, transparent 6deg, transparent 27deg, oklch(98% 0.05 90 \/ 0.45) 30deg, transparent 33deg, transparent 57deg, oklch(98% 0.05 90 \/ 0.45) 60deg, transparent 63deg, transparent 87deg, oklch(98% 0.05 90 \/ 0.45) 90deg, transparent 93deg, transparent 117deg, oklch(98% 0.05 90 \/ 0.45) 120deg, transparent 123deg, transparent 147deg, oklch(98% 0.05 90 \/ 0.45) 150deg, transparent 153deg, transparent 177deg, oklch(98% 0.05 90 \/ 0.45) 180deg, transparent 183deg, transparent 207deg, oklch(98% 0.05 90 \/ 0.45) 210deg, transparent 213deg, transparent 237deg, oklch(98% 0.05 90 \/ 0.45) 240deg, transparent 243deg, transparent 267deg, oklch(98% 0.05 90 \/ 0.45) 270deg, transparent 273deg, transparent 297deg, oklch(98% 0.05 90 \/ 0.45) 300deg, transparent 303deg, transparent 327deg, oklch(98% 0.05 90 \/ 0.45) 330deg, transparent 333deg, transparent 360deg); mix-blend-mode: screen; filter: blur(1px); z-index: -1; pointer-events: none; animation: s340f-feat-spin 14s linear infinite; border-radius: 50%; }\n@keyframes s340f-feat-spin { to { transform: rotate(360deg); } }\n.s340f-feat.magenta .s340f-feat-icon::before { content: ''; position: absolute; top: 100%; left: 50%; inline-size: 250%; block-size: 60px; background: linear-gradient(180deg, oklch(98% 0.06 90 \/ 0.7), transparent); clip-path: polygon(46% 0%, 54% 0%, 100% 100%, 0% 100%); transform: translateX(-50%); filter: blur(3px); mix-blend-mode: screen; opacity: 0; z-index: -1; pointer-events: none; animation: s340f-spot-pulse 2.2s ease-in-out infinite; }\n@keyframes s340f-spot-pulse { 0%, 100% { opacity: 0; } 50% { opacity: 0.9; } }\n.s340f-feat.teal .s340f-feat-icon { animation: s340f-feat-360 8s linear infinite; }\n@keyframes s340f-feat-360 { to { transform: rotate(360deg); } }\n.s340f-feat.indigo .s340f-feat-icon::before { content: ''; position: absolute; inset-inline: 10%; block-size: 2px; background: linear-gradient(90deg, transparent, var(--paper), transparent); box-shadow: 0 0 8px var(--paper); top: 18%; z-index: 0; pointer-events: none; animation: s340f-ai-scan 2s ease-in-out infinite; }\n@keyframes s340f-ai-scan { 0%, 100% { top: 18%; } 50% { top: 82%; } }\n.s340f-feat.mint .s340f-feat-icon::before, .s340f-feat.mint .s340f-feat-icon::after { content: ''; position: absolute; top: -10%; inline-size: 2px; block-size: 8px; background: oklch(92% 0.06 220 \/ 0.85); border-radius: 1px; z-index: 0; pointer-events: none; animation: s340f-drop-fall 1.2s linear infinite; }\n.s340f-feat.mint .s340f-feat-icon::before { left: 32%; animation-delay: 0s; }\n.s340f-feat.mint .s340f-feat-icon::after { left: 64%; animation-delay: 0.5s; }\n.s340f-feat-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; margin-bottom: 8px; }\n.s340f-feat.coral .s340f-feat-eyebrow { color: var(--coral-deep); }\n.s340f-feat.amber .s340f-feat-eyebrow { color: var(--amber-deep); }\n.s340f-feat.magenta .s340f-feat-eyebrow { color: var(--magenta-deep); }\n.s340f-feat.teal .s340f-feat-eyebrow { color: var(--teal-deep); }\n.s340f-feat.indigo .s340f-feat-eyebrow { color: var(--indigo-deep); }\n.s340f-feat.mint .s340f-feat-eyebrow { color: var(--mint-deep); }\n.s340f-feat h3 { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 700, 'CASL' 0.3; font-size: 22px; letter-spacing: -0.015em; line-height: 1.2; color: var(--ink); margin-bottom: 10px; }\n.s340f-feat p { font-size: 14.5px; color: var(--ink-2); line-height: 1.7; }\n\n.s340f-afterdark { background: var(--night-deep); color: var(--paper); position: relative; overflow: hidden; isolation: isolate; }\n.s340f-afterdark::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 40% at 50% 100%, color-mix(in oklch, var(--amber) 38%, transparent), transparent 70%), radial-gradient(ellipse 80% 60% at 50% 110%, color-mix(in oklch, var(--magenta) 25%, transparent), transparent 70%); z-index: -1; pointer-events: none; }\n.s340f-afterdark::after { content: ''; position: absolute; inset: 0; background-image: radial-gradient(circle at 8% 18%, oklch(98% 0 0 \/ 0.9) 0 1.5px, transparent 1.5px), radial-gradient(circle at 24% 12%, oklch(98% 0 0 \/ 0.6) 0 1px, transparent 1px), radial-gradient(circle at 42% 8%, oklch(98% 0 0 \/ 0.8) 0 1.5px, transparent 1.5px), radial-gradient(circle at 62% 16%, oklch(98% 0 0 \/ 0.5) 0 1px, transparent 1px), radial-gradient(circle at 78% 22%, oklch(98% 0 0 \/ 0.7) 0 1.5px, transparent 1.5px), radial-gradient(circle at 18% 32%, oklch(98% 0 0 \/ 0.55) 0 1px, transparent 1px), radial-gradient(circle at 58% 28%, oklch(98% 0 0 \/ 0.8) 0 1.5px, transparent 1.5px), radial-gradient(circle at 88% 38%, oklch(98% 0 0 \/ 0.6) 0 1px, transparent 1px), radial-gradient(circle at 32% 44%, oklch(98% 0 0 \/ 0.5) 0 1px, transparent 1px); z-index: -1; pointer-events: none; }\n.s340f-afterdark-inner { display: grid; gap: clamp(40px, 6vw, 72px); align-items: center; }\n@media (min-width: 900px) { .s340f .s340f-afterdark-inner { grid-template-columns: 1.1fr 1fr; } }\n.s340f-afterdark .s340f-eyebrow { color: var(--amber); }\n.s340f-afterdark h2 { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 800, 'CASL' 0.3, 'slnt' 0; font-size: clamp(2.4rem, 6vw, 4.6rem); letter-spacing: -0.035em; line-height: 1.04; margin-bottom: 22px; }\n.s340f-afterdark h2 em { font-style: normal; font-variation-settings: 'wght' 900, 'CASL' 0.7, 'slnt' -6; background: linear-gradient(135deg, var(--amber), oklch(85% 0.14 80), var(--coral)); background-size: 200% 200%; animation: s340f-text-grad 5s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s340f-afterdark p { font-size: clamp(15.5px, 1.8vw, 17.5px); color: oklch(88% 0.01 80); line-height: 1.7; max-inline-size: 52ch; margin-bottom: 22px; }\n.s340f-afterdark p strong { color: var(--paper); font-weight: 600; }\n.s340f-afterdark-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.s340f-afterdark-pill { background: color-mix(in oklch, var(--amber) 18%, transparent); border: 1px solid color-mix(in oklch, var(--amber) 35%, transparent); color: color-mix(in oklch, var(--amber) 80%, white); font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 0.1em; padding: 7px 14px; border-radius: 999px; }\n\n.s340f-spot-vis { position: relative; aspect-ratio: 4\/5; border-radius: 22px; background: linear-gradient(180deg, var(--night) 0%, var(--night-deep) 100%); border: 1px solid color-mix(in oklch, var(--amber) 22%, transparent); overflow: hidden; --s340f-angle: 0deg; mask: conic-gradient(from var(--s340f-angle), black 0deg, black 120deg, color-mix(in oklch, black 60%, transparent) 200deg, black 320deg, black 360deg); -webkit-mask: conic-gradient(from var(--s340f-angle), black 0deg, black 120deg, color-mix(in oklch, black 60%, transparent) 200deg, black 320deg, black 360deg); animation: s340f-mask-scan 14s linear infinite; }\n.s340f-spot-cam-wrap { position: absolute; top: 8%; left: 50%; transform: translateX(-50%); z-index: 5; animation: s340f-cam-pan 8s ease-in-out infinite; }\n.s340f-spot-cam-mount { inline-size: 6px; block-size: 18px; background: linear-gradient(180deg, oklch(58% 0.02 250), oklch(38% 0.02 250)); margin-inline: auto; }\n.s340f-spot-cam-body { position: relative; inline-size: 92px; block-size: 64px; background: linear-gradient(180deg, oklch(40% 0.02 250), oklch(25% 0.02 250)); border-radius: 22% 22% 28% 28% \/ 26% 26% 32% 32%; border: 1px solid oklch(48% 0.03 250); }\n.s340f-spot-cam-body::before { content: ''; position: absolute; top: 30%; left: 22%; inline-size: 26px; block-size: 26px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, oklch(60% 0.05 70), oklch(28% 0.02 250) 70%); border: 2px solid oklch(50% 0.03 250); box-shadow: 0 0 12px color-mix(in oklch, var(--amber) 40%, transparent); }\n.s340f-spot-cam-body::after { content: ''; position: absolute; top: 33%; right: 22%; inline-size: 22px; block-size: 22px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, oklch(60% 0.05 70), oklch(28% 0.02 250) 70%); border: 2px solid oklch(50% 0.03 250); box-shadow: 0 0 8px color-mix(in oklch, var(--magenta) 40%, transparent); }\n.s340f-spot-beam { position: absolute; top: 18%; left: 50%; inline-size: 80%; block-size: 80%; transform: translateX(-50%); background: linear-gradient(180deg, color-mix(in oklch, var(--amber) 80%, transparent) 0%, color-mix(in oklch, var(--amber) 45%, transparent) 35%, color-mix(in oklch, var(--amber) 15%, transparent) 75%, transparent 100%); clip-path: polygon(46% 0%, 54% 0%, 100% 100%, 0% 100%); filter: blur(5px); mix-blend-mode: screen; z-index: 3; animation: s340f-bloom 2.4s var(--ease-bloom) both; }\n@supports (animation-timeline: view()) { .s340f .s340f-spot-beam { animation: s340f-bloom 2.4s var(--ease-bloom) both; animation-timeline: view(); animation-range: entry 5% cover 40%; } }\n.s340f-spot-pool { position: absolute; bottom: 7%; left: 50%; inline-size: 80%; block-size: 9%; transform: translateX(-50%); background: radial-gradient(ellipse, color-mix(in oklch, var(--amber) 70%, transparent), transparent 80%); filter: blur(10px); z-index: 3; }\n.s340f-spot-label { position: absolute; bottom: 16px; left: 16px; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--amber); z-index: 4; }\n.s340f-spot-figure { position: absolute; bottom: 14%; left: -10%; inline-size: 18px; block-size: 44px; background: linear-gradient(180deg, oklch(15% 0.02 250) 0%, oklch(20% 0.02 250) 60%, oklch(10% 0.02 250) 100%); border-radius: 6px 6px 0 0; z-index: 4; animation: s340f-figure-walk 10s ease-in-out infinite; filter: drop-shadow(0 4px 6px oklch(0% 0 0 \/ 0.4)); }\n.s340f-spot-figure::before { content: ''; position: absolute; top: -12px; left: 50%; inline-size: 14px; block-size: 14px; background: oklch(20% 0.02 250); border-radius: 50%; transform: translateX(-50%); }\n.s340f-spot-figure::after { content: ''; position: absolute; bottom: -10px; left: 50%; inline-size: 18px; block-size: 12px; background: oklch(15% 0.02 250); clip-path: polygon(0% 0%, 100% 0%, 65% 100%, 35% 100%); transform: translateX(-50%); }\n@keyframes s340f-figure-walk { 0%, 4% { left: -10%; opacity: 0; } 8% { opacity: 1; } 18% { left: 18%; } 35% { left: 38%; } 55% { left: 58%; } 72% { left: 78%; } 88% { left: 96%; opacity: 1; } 92% { opacity: 0; left: 110%; } 100% { left: 110%; opacity: 0; } }\n.s340f-spot-detect { position: absolute; bottom: 13%; left: -10%; inline-size: 36px; block-size: 70px; z-index: 5; animation: s340f-detect-follow 10s ease-in-out infinite; opacity: 0; }\n.s340f-spot-detect::before, .s340f-spot-detect::after { content: ''; position: absolute; inline-size: 12px; block-size: 12px; border: 2px solid var(--amber); filter: drop-shadow(0 0 4px color-mix(in oklch, var(--amber) 60%, transparent)); }\n.s340f-spot-detect::before { top: -3px; left: -3px; border-right: none; border-bottom: none; }\n.s340f-spot-detect::after { bottom: -3px; right: -3px; border-left: none; border-top: none; }\n.s340f-spot-detect-inner { position: absolute; inset: 0; }\n.s340f-spot-detect-inner::before, .s340f-spot-detect-inner::after { content: ''; position: absolute; inline-size: 12px; block-size: 12px; border: 2px solid var(--amber); filter: drop-shadow(0 0 4px color-mix(in oklch, var(--amber) 60%, transparent)); }\n.s340f-spot-detect-inner::before { top: -3px; right: -3px; border-left: none; border-bottom: none; }\n.s340f-spot-detect-inner::after { bottom: -3px; left: -3px; border-right: none; border-top: none; }\n@keyframes s340f-detect-follow { 0%, 6% { left: -10%; opacity: 0; } 10% { opacity: 1; } 18% { left: 13%; } 35% { left: 33%; } 55% { left: 53%; } 72% { left: 73%; } 88% { left: 91%; opacity: 1; } 92%, 100% { opacity: 0; left: 105%; } }\n.s340f-spot-alert { position: absolute; top: 16px; right: 16px; background: linear-gradient(135deg, oklch(55% 0.22 25), oklch(45% 0.22 20)); color: oklch(98% 0 0); font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; padding: 6px 10px; border-radius: 4px; z-index: 6; animation: s340f-alert-flash 10s ease-in-out infinite; opacity: 0; display: flex; align-items: center; gap: 6px; }\n.s340f-spot-alert::before { content: ''; inline-size: 6px; block-size: 6px; border-radius: 50%; background: oklch(95% 0.03 25); box-shadow: 0 0 6px oklch(95% 0.03 25); animation: s340f-alert-blink 0.4s steps(2, end) infinite; }\n@keyframes s340f-alert-flash { 0%, 6% { opacity: 0; transform: translateX(8px); } 10%, 88% { opacity: 1; transform: translateX(0); } 92%, 100% { opacity: 0; transform: translateX(8px); } }\n@keyframes s340f-alert-blink { 0%, 50% { opacity: 1; } 50.01%, 100% { opacity: 0.2; } }\n.s340f-spot-hud { position: absolute; inset: 12px; pointer-events: none; z-index: 4; }\n.s340f-spot-hud::before, .s340f-spot-hud::after, .s340f-spot-hud \u003e span::before, .s340f-spot-hud \u003e span::after { content: ''; position: absolute; inline-size: 16px; block-size: 16px; border: 1.5px solid color-mix(in oklch, var(--amber) 50%, transparent); }\n.s340f-spot-hud::before { top: 0; left: 0; border-right: none; border-bottom: none; }\n.s340f-spot-hud::after { top: 0; right: 0; border-left: none; border-bottom: none; }\n.s340f-spot-hud \u003e span { position: absolute; inset: 0; }\n.s340f-spot-hud \u003e span::before { bottom: 0; left: 0; border-right: none; border-top: none; }\n.s340f-spot-hud \u003e span::after { bottom: 0; right: 0; border-left: none; border-top: none; }\n.s340f-spot-rec { position: absolute; top: 16px; left: 16px; z-index: 6; display: flex; align-items: center; gap: 6px; font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: oklch(95% 0.05 25); }\n.s340f-spot-rec::before { content: ''; inline-size: 7px; block-size: 7px; border-radius: 50%; background: oklch(58% 0.20 25); box-shadow: 0 0 8px oklch(58% 0.20 25); animation: s340f-rec-blink 1.4s ease-in-out infinite; }\n@keyframes s340f-rec-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }\n\n.s340f-zero { background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%); position: relative; overflow: hidden; }\n.s340f-zero-grid { display: grid; gap: clamp(32px, 5vw, 56px); }\n@media (min-width: 800px) { .s340f .s340f-zero-grid { grid-template-columns: 1fr 1fr; align-items: center; } }\n.s340f-zero-text h2 { margin-bottom: 18px; }\n.s340f-zero-text p { font-size: 16px; color: var(--ink-2); line-height: 1.7; margin-bottom: 14px; }\n.s340f-zero-text strong { color: var(--ink); font-weight: 600; }\n.s340f-zero-card { background: linear-gradient(135deg, var(--ink), var(--indigo-deep)); border-radius: 28px; padding: 48px 36px; color: var(--paper); position: relative; overflow: hidden; text-align: center; box-shadow: 0 20px 50px color-mix(in oklch, var(--indigo-deep) 30%, transparent); }\n.s340f-zero-card::before { content: ''; position: absolute; inset: -50%; background: conic-gradient(from var(--s340f-angle), transparent 0deg, color-mix(in oklch, var(--mint) 35%, transparent) 60deg, transparent 120deg, color-mix(in oklch, var(--teal) 25%, transparent) 200deg, transparent 280deg); animation: s340f-halo-spin 18s linear infinite; pointer-events: none; filter: blur(40px); z-index: 0; }\n.s340f-zero-num { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 900, 'CASL' 0.6, 'slnt' -8; font-size: clamp(6rem, 18vw, 12rem); letter-spacing: -0.06em; line-height: 0.9; background: linear-gradient(135deg, var(--mint), var(--teal), oklch(85% 0.14 195)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; position: relative; z-index: 2; }\n.s340f-zero-lbl { font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mint); margin-top: 4px; position: relative; z-index: 2; }\n.s340f-zero-sub { font-size: 14px; color: oklch(85% 0.01 80); margin-top: 18px; position: relative; z-index: 2; }\n\n.s340f-specs-section { background: var(--paper); }\n.s340f-specs-head { margin-bottom: 40px; display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 16px; }\n.s340f-spec-table { inline-size: 100%; border-collapse: collapse; background: var(--paper); border-radius: 18px; overflow: hidden; border: 1px solid var(--line); }\n.s340f-spec-table tr { border-bottom: 1px solid var(--line-soft); transition: background 0.2s ease; }\n.s340f-spec-table tr:last-child { border-bottom: none; }\n.s340f-spec-table tr:has(td:hover) { background: var(--paper-2); }\n.s340f-spec-table td { padding: 14px 22px; font-size: 14px; vertical-align: top; }\n.s340f-spec-table td:first-child { color: var(--ink-3); inline-size: 40%; font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; }\n.s340f-spec-table td:last-child { color: var(--ink); font-weight: 500; }\n\n.s340f-inbox { background: linear-gradient(135deg, color-mix(in oklch, var(--coral) 6%, var(--paper)) 0%, color-mix(in oklch, var(--amber) 6%, var(--paper)) 35%, color-mix(in oklch, var(--magenta) 5%, var(--paper)) 70%, color-mix(in oklch, var(--indigo) 5%, var(--paper)) 100%); background-size: 200% 200%; animation: s340f-text-grad 18s ease infinite; border-block: 1px solid var(--line-soft); }\n.s340f-inbox-head { text-align: center; margin-bottom: 40px; }\n.s340f-inbox-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 14px; max-width: 920px; margin-inline: auto; }\n.s340f-inbox-item { background: color-mix(in oklch, var(--paper) 80%, transparent); backdrop-filter: blur(12px); border: 1px solid color-mix(in oklch, var(--paper) 60%, transparent); border-radius: 18px; padding: 24px 22px; transition: transform 0.4s var(--ease-spring); }\n.s340f-inbox-item:hover { transform: translateY(-3px); }\n.s340f-inbox-num { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.16em; color: var(--coral-deep); margin-bottom: 10px; }\n.s340f-inbox-name { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 700, 'CASL' 0.3; font-size: 16px; color: var(--ink); margin-bottom: 3px; letter-spacing: -0.01em; }\n.s340f-inbox-note { font-size: 12.5px; color: var(--ink-3); }\n\n.s340f-trust { background: var(--paper); }\n.s340f-trust-head { text-align: center; margin-bottom: 40px; }\n.s340f-trust-grid { display: grid; gap: 14px; max-width: 920px; margin-inline: auto; }\n@media (min-width: 600px) { .s340f .s340f-trust-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: auto auto auto 1fr; } .s340f .s340f-trust-card { grid-row: span 4; display: grid; grid-template-rows: subgrid; gap: 0; } }\n.s340f-trust-card { border-radius: 20px; padding: 28px 26px; border: 1px solid; position: relative; transition: transform 0.5s var(--ease-spring), box-shadow 0.4s ease; }\n.s340f-trust-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px oklch(0% 0 0 \/ 0.06); }\n.s340f-trust-card.coral { background: color-mix(in oklch, var(--coral) 10%, var(--paper)); border-color: color-mix(in oklch, var(--coral) 22%, transparent); }\n.s340f-trust-card.amber { background: color-mix(in oklch, var(--amber) 12%, var(--paper)); border-color: color-mix(in oklch, var(--amber) 25%, transparent); }\n.s340f-trust-card.teal { background: color-mix(in oklch, var(--teal) 10%, var(--paper)); border-color: color-mix(in oklch, var(--teal) 22%, transparent); }\n.s340f-trust-card.mint { background: color-mix(in oklch, var(--mint) 14%, var(--paper)); border-color: color-mix(in oklch, var(--mint) 25%, transparent); }\n.s340f-trust-num { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; padding-bottom: 12px; }\n.s340f-trust-card.coral .s340f-trust-num { color: var(--coral-deep); }\n.s340f-trust-card.amber .s340f-trust-num { color: var(--amber-deep); }\n.s340f-trust-card.teal .s340f-trust-num { color: var(--teal-deep); }\n.s340f-trust-card.mint .s340f-trust-num { color: var(--mint-deep); }\n.s340f-trust-card h3 { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 700, 'CASL' 0.3; font-size: 17px; letter-spacing: -0.015em; color: var(--ink); padding-bottom: 10px; }\n.s340f-trust-card p { font-size: 14px; color: var(--ink-2); line-height: 1.65; }\n\n.s340f-ship { background: var(--paper-2); border-block: 1px solid var(--line-soft); }\n.s340f-ship-head { text-align: center; margin-bottom: 40px; }\n.s340f-ship-grid { display: grid; gap: 14px; max-width: 920px; margin-inline: auto; grid-template-columns: 1fr; }\n@media (min-width: 700px) { .s340f .s340f-ship-grid { grid-template-columns: 1fr 1fr; } }\n.s340f-ship-card { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; padding: 28px 26px; transition: transform 0.4s var(--ease-spring); }\n.s340f-ship-card:hover { transform: translateY(-3px); }\n.s340f-ship-card h4 { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 700, 'CASL' 0.3; font-size: 16px; color: var(--ink); margin-bottom: 12px; }\n.s340f-ship-card p { font-size: 14px; color: var(--ink-2); line-height: 1.7; margin-bottom: 10px; }\n.s340f-ship-card p:last-child { margin-bottom: 0; }\n.s340f-ship-card strong { color: var(--ink); font-weight: 600; }\n.s340f-ship-coral { color: var(--coral-deep); font-weight: 700; }\n.s340f-ship-mint { color: var(--mint-deep); font-weight: 700; }\n.s340f-ship-amber { color: var(--amber-deep); font-weight: 700; }\n\n.s340f-faq { background: var(--paper); }\n.s340f-faq-head { text-align: center; margin-bottom: 40px; }\n.s340f-faq-list { max-width: 760px; margin-inline: auto; }\n.s340f-faq-item { padding-block: 24px; border-bottom: 1px solid var(--line); }\n.s340f-faq-item:last-child { border-bottom: none; }\n.s340f-faq-q { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 700, 'CASL' 0.3; font-size: 17px; letter-spacing: -0.015em; color: var(--ink); margin-bottom: 10px; display: flex; gap: 12px; align-items: flex-start; }\n.s340f-faq-q-tag { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: var(--paper); background: linear-gradient(135deg, var(--coral-deep), var(--amber-deep)); padding: 3px 9px; border-radius: 6px; flex-shrink: 0; margin-top: 4px; }\n.s340f-faq-a { font-size: 14.5px; color: var(--ink-2); line-height: 1.7; padding-inline-start: 38px; }\n.s340f-faq-a strong { color: var(--ink); font-weight: 600; }\n\n.s340f-cta { padding-block: clamp(80px, 14vh, 140px); text-align: center; color: var(--paper); position: relative; overflow: hidden; isolation: isolate; background: radial-gradient(ellipse 60% 50% at 20% 100%, color-mix(in oklch, var(--coral) 45%, transparent) 0%, transparent 60%), radial-gradient(ellipse 60% 40% at 80% 0%, color-mix(in oklch, var(--amber) 40%, transparent) 0%, transparent 60%), radial-gradient(ellipse 70% 60% at 50% 50%, color-mix(in oklch, var(--magenta) 30%, transparent) 0%, transparent 70%), linear-gradient(135deg, var(--ink) 0%, var(--indigo-deep) 50%, var(--magenta-deep) 100%); background-size: 200% 200%; animation: s340f-text-grad 18s ease infinite; }\n.s340f-cta-inner { position: relative; z-index: 2; max-inline-size: 720px; margin-inline: auto; }\n.s340f-cta h2 { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 800, 'CASL' 0.4, 'slnt' 0; font-size: clamp(2.8rem, 7vw, 5rem); letter-spacing: -0.04em; line-height: 1; margin-bottom: 18px; }\n.s340f-cta h2 em { font-style: normal; font-variation-settings: 'wght' 900, 'CASL' 0.8, 'slnt' -8; background: linear-gradient(135deg, var(--amber), var(--coral), var(--magenta), var(--amber)); background-size: 300% 300%; animation: s340f-text-grad 5s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s340f-cta p { font-size: clamp(15px, 1.7vw, 17px); color: oklch(88% 0.01 80); line-height: 1.7; margin-bottom: 30px; }\n.s340f-cta p strong { color: var(--paper); font-weight: 600; }\n.s340f-cta-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }\n.s340f-cta-pill { background: color-mix(in oklch, var(--paper) 10%, transparent); border: 1px solid color-mix(in oklch, var(--paper) 22%, transparent); color: var(--paper); font-family: 'JetBrains Mono', monospace; font-size: 11.5px; font-weight: 600; letter-spacing: 0.08em; padding: 8px 14px; border-radius: 999px; backdrop-filter: blur(8px); transition: background 0.2s ease, border-color 0.2s ease; }\n.s340f-cta-pill:hover { background: color-mix(in oklch, var(--amber) 25%, transparent); border-color: color-mix(in oklch, var(--amber) 50%, transparent); }\n\n.s340f-footer { background: oklch(8% 0.04 270); color: oklch(82% 0.01 80); padding-block: 40px; text-align: center; position: relative; }\n.s340f-footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--coral-deep), var(--amber-deep), var(--magenta-deep), var(--teal-deep), var(--coral-deep)); background-size: 200% 100%; animation: s340f-shimmer 6s linear infinite; }\n.s340f-footer-brand { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 700, 'CASL' 0.4; font-size: 17px; color: var(--paper); letter-spacing: -0.01em; margin-bottom: 8px; }\n.s340f-footer-tag { font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 500, 'CASL' 0.8, 'slnt' -6; font-size: 14px; background: linear-gradient(135deg, var(--amber), var(--coral), var(--magenta)); background-size: 200% 200%; animation: s340f-text-grad 6s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 18px; }\n.s340f-footer p { font-size: 13px; color: oklch(85% 0.01 80); line-height: 1.7; max-inline-size: 760px; margin-inline: auto; margin-bottom: 6px; }\n.s340f-footer-divider { margin-block: 20px; margin-inline: auto; inline-size: 60%; max-inline-size: 400px; block-size: 1px; background: linear-gradient(90deg, transparent, color-mix(in oklch, var(--amber) 50%, transparent), transparent); }\n.s340f-footer-legal { font-size: 12px; color: oklch(80% 0.01 80); line-height: 1.7; max-inline-size: 780px; margin-inline: auto; }\n.s340f-footer-legal + .s340f-footer-legal { margin-top: 8px; }\n\u003c\/style\u003e\n\n\u003csvg width=\"0\" height=\"0\" style=\"position:absolute;pointer-events:none\" aria-hidden=\"true\"\u003e\n  \u003cfilter id=\"s340f-grain-filter\"\u003e\n    \u003cfeturbulence type=\"fractalNoise\" basefrequency=\"0.85\" numoctaves=\"2\" stitchtiles=\"stitch\"\u003e\u003c\/feturbulence\u003e\n    \u003cfecolormatrix values=\"0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.18 0\"\u003e\u003c\/fecolormatrix\u003e\n    \u003cfecomposite in2=\"SourceGraphic\" operator=\"in\"\u003e\u003c\/fecomposite\u003e\n  \u003c\/filter\u003e\n\u003c\/svg\u003e\n\n\u003cdiv class=\"s340f\"\u003e\n\n  \u003cnav class=\"s340f-nav\"\u003e\n    \u003cdiv class=\"s340f-container s340f-nav-inner\"\u003e\n      \u003cdiv class=\"s340f-logo\"\u003eCam\u003cspan\u003eGuard\u003c\/span\u003e Australia\u003c\/div\u003e\n      \u003cspan class=\"s340f-nav-status\"\u003e\n        \u003cspan class=\"s340f-nav-dot\"\u003e\u003c\/span\u003e\n        SoloCam S340 · Gen 2 · 3K Dual\n      \u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/nav\u003e\n\n  \u003csection class=\"s340f-hero\"\u003e\n    \u003cdiv class=\"s340f-stage\"\u003e\n      \u003cdiv class=\"s340f-sky s340f-sky-dawn\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-sky s340f-sky-day\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-sky s340f-sky-dusk\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-sky s340f-sky-night\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-starfield\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-aurora-2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-aurora\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-sun\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-godrays\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-moon\"\u003e\n        \u003cdiv class=\"s340f-crater\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s340f-crater\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s340f-crater\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-flare s340f-flare-1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-flare s340f-flare-2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-flare s340f-flare-3\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-flare s340f-flare-4\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-flare s340f-flare-5\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-cloud s340f-c1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-cloud s340f-c2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-cloud s340f-c3\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-storm-clouds\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-storm-cloud s340f-sc1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-storm-cloud s340f-sc2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-storm-cloud s340f-sc3\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-storm-cloud s340f-sc4\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-storm-cloud s340f-sc5\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-storm-cloud s340f-sc6\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-storm-cloud s340f-sc7\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s340f-rain\"\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 3%; --d: 0s; --s: 0.65s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 8%; --d: 0.32s; --s: 0.78s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 13%; --d: 0.55s; --s: 0.6s; --len: 24px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 17%; --d: 0.12s; --s: 0.82s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 22%; --d: 0.48s; --s: 0.7s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 27%; --d: 0.18s; --s: 0.74s; --len: 26px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 31%; --d: 0.62s; --s: 0.66s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 36%; --d: 0.05s; --s: 0.85s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 41%; --d: 0.42s; --s: 0.68s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 45%; --d: 0.25s; --s: 0.76s; --len: 24px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 49%; --d: 0.55s; --s: 0.62s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 53%; --d: 0.08s; --s: 0.8s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 58%; --d: 0.38s; --s: 0.72s; --len: 26px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 62%; --d: 0.22s; --s: 0.66s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 67%; --d: 0.5s; --s: 0.78s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 71%; --d: 0.15s; --s: 0.7s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 75%; --d: 0.45s; --s: 0.64s; --len: 24px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 80%; --d: 0.28s; --s: 0.82s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 84%; --d: 0.58s; --s: 0.68s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 88%; --d: 0.1s; --s: 0.76s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 93%; --d: 0.35s; --s: 0.72s; --len: 26px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 97%; --d: 0.52s; --s: 0.66s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 6%; --d: 0.4s; --s: 0.74s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 19%; --d: 0.3s; --s: 0.6s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 34%; --d: 0.6s; --s: 0.8s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 51%; --d: 0.2s; --s: 0.7s; --len: 24px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 64%; --d: 0.55s; --s: 0.64s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 77%; --d: 0.05s; --s: 0.76s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 90%; --d: 0.45s; --s: 0.68s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s340f-drop\" style=\"--x: 11%; --d: 0.6s; --s: 0.72s; --len: 24px;\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s340f-lightning\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-fog\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-bird\"\u003e𓅪\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-tree\"\u003e\n        \u003cdiv class=\"s340f-tree-canopy\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s340f-tree-trunk\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-wall\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-camera-scene\"\u003e\n        \u003cdiv class=\"s340f-spotlight\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s340f-spotlight-pool\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s340f-camera-3d\"\u003e\n          \u003cdiv class=\"s340f-cam-mount\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"s340f-cam-body\"\u003e\n            \u003cdiv class=\"s340f-cam-lens s340f-cam-lens-wide\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"s340f-cam-lens s340f-cam-lens-tele\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"s340f-cam-led\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-status solar\"\u003e\n        \u003cspan class=\"s340f-status-dot\"\u003e\u003c\/span\u003e\n        ☀️ 3W SolarPlus\n      \u003c\/div\u003e\n      \u003cdiv class=\"s340f-status spot\"\u003e\n        \u003cspan class=\"s340f-status-dot\"\u003e\u003c\/span\u003e\n        💡 Spotlight On\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-grain\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-hero-overlay\"\u003e\n        \u003cdiv class=\"s340f-hero-text\"\u003e\n          \u003cspan class=\"s340f-hero-eyebrow\"\u003eSoloCam S340 · Gen 2 · Brand New · Factory Sealed\u003c\/span\u003e\n          \u003ch1\u003eDual eyes.\u003cbr\u003e\u003cem\u003eOne sun.\u003c\/em\u003e Sorted.\u003c\/h1\u003e\n          \u003cp class=\"s340f-hero-sub\"\u003eA flagship dual-lens 3K + 2K outdoor cam with 360° pan, 8× hybrid zoom, colour night vision, and the \u003cstrong\u003eupgraded 3W SolarPlus panel\u003c\/strong\u003e. No HomeBase required. No subscription. Ever.\u003c\/p\u003e\n          \u003cdiv class=\"s340f-hero-pills\"\u003e\n            \u003cspan class=\"s340f-hero-pill amber\"\u003e☀️ 3W SolarPlus\u003c\/span\u003e\n            \u003cspan class=\"s340f-hero-pill coral\"\u003e📷 3K + 2K Dual\u003c\/span\u003e\n            \u003cspan class=\"s340f-hero-pill magenta\"\u003e🔄 360° Pan + Tilt\u003c\/span\u003e\n            \u003cspan class=\"s340f-hero-pill mint\"\u003e$0\/mo · ever\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"s340f-strip\"\u003e\n    \u003cdiv class=\"s340f-strip-track\"\u003e\n      \u003cspan\u003e3K wide + 2K telephoto\u003c\/span\u003e\n      \u003cspan\u003e8× hybrid zoom\u003c\/span\u003e\n      \u003cspan\u003e360° pan · 70° tilt\u003c\/span\u003e\n      \u003cspan\u003e3W SolarPlus panel\u003c\/span\u003e\n      \u003cspan\u003eColour night vision\u003c\/span\u003e\n      \u003cspan\u003eIP67 weatherproof\u003c\/span\u003e\n      \u003cspan\u003eZero subscription · ever\u003c\/span\u003e\n      \u003cspan\u003eBrand new · factory sealed\u003c\/span\u003e\n      \u003cspan\u003e3K wide + 2K telephoto\u003c\/span\u003e\n      \u003cspan\u003e8× hybrid zoom\u003c\/span\u003e\n      \u003cspan\u003e360° pan · 70° tilt\u003c\/span\u003e\n      \u003cspan\u003e3W SolarPlus panel\u003c\/span\u003e\n      \u003cspan\u003eColour night vision\u003c\/span\u003e\n      \u003cspan\u003eIP67 weatherproof\u003c\/span\u003e\n      \u003cspan\u003eZero subscription · ever\u003c\/span\u003e\n      \u003cspan\u003eBrand new · factory sealed\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"s340f-section s340f-bigidea\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-bv-grid\"\u003e\n        \u003cdiv class=\"s340f-bigidea-text s340f-reveal\"\u003e\n          \u003cdiv class=\"s340f-eyebrow coral\"\u003eThe pitch\u003c\/div\u003e\n          \u003ch2 class=\"s340f-h2\"\u003eTwo lenses. \u003cem\u003eOne camera.\u003c\/em\u003e Zero compromise.\u003c\/h2\u003e\n          \u003cp\u003eThe S340 packs \u003cstrong\u003etwo real lenses\u003c\/strong\u003e in one housing — a 3K wide-angle for full-scene awareness (2880 × 1620, 135° FOV) and a separate 2K telephoto for serious zoom detail (2304 × 1296). Combined, they deliver up to \u003cstrong\u003e8× hybrid zoom\u003c\/strong\u003e with way more detail than any single-lens camera at this price tier.\u003c\/p\u003e\n          \u003cp\u003ePair that with the \u003cstrong\u003eupgraded 3W SolarPlus panel\u003c\/strong\u003e — the Gen 2 model's headline change over the original 2.2W panel — and you get up to \u003cstrong\u003e1.5× better charging in low light\u003c\/strong\u003e. More reliable top-ups through Aussie winters, overcast stretches, and shaded mounting positions.\u003c\/p\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"s340f-dual-card s340f-reveal\" aria-label=\"Dual lens system overview with 8x zoom and 360 pan\"\u003e\n          \u003cdiv class=\"s340f-dual-eyebrow\"\u003eDual lens system · live\u003c\/div\u003e\n\n          \u003cdiv class=\"s340f-dual-pair\"\u003e\n            \u003cdiv class=\"s340f-dual-lens wide\"\u003e\n              \u003cdiv class=\"s340f-dual-lens-num\"\u003e3K\u003c\/div\u003e\n              \u003cdiv class=\"s340f-dual-lens-lbl\"\u003eWide-angle\u003c\/div\u003e\n              \u003cdiv class=\"s340f-dual-lens-desc\"\u003e2880 × 1620 · 135° FOV · full scene awareness\u003c\/div\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"s340f-dual-lens tele\"\u003e\n              \u003cdiv class=\"s340f-dual-lens-num\"\u003e2K\u003c\/div\u003e\n              \u003cdiv class=\"s340f-dual-lens-lbl\"\u003eTelephoto\u003c\/div\u003e\n              \u003cdiv class=\"s340f-dual-lens-desc\"\u003e2304 × 1296 · zoom detail · F1.6 aperture\u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"s340f-zoom-bar\"\u003e\n            \u003cspan class=\"s340f-zoom-bar-lbl\"\u003eZoom\u003c\/span\u003e\n            \u003cspan class=\"s340f-zoom-bar-track\"\u003e\n              \u003cspan class=\"s340f-zoom-bar-fill\"\u003e\u003c\/span\u003e\n            \u003c\/span\u003e\n            \u003cspan class=\"s340f-zoom-bar-val\"\u003e\u003c\/span\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"s340f-pan-bar\"\u003e\n            \u003cspan\u003e360°\u003c\/span\u003e\n            \u003cspan class=\"s340f-pan-arc\"\u003e\u003c\/span\u003e\n            \u003cspan class=\"s340f-pan-deg\"\u003ePan + Tilt\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-section s340f-sealed\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-sealed-card s340f-reveal\"\u003e\n        \u003cdiv class=\"s340f-eyebrow mint\"\u003eAbout the condition\u003c\/div\u003e\n        \u003ch2 class=\"s340f-h2 cool\"\u003eBrand new. \u003cem\u003eFactory sealed.\u003c\/em\u003e\n\u003c\/h2\u003e\n        \u003cp\u003eGenuine eufy SoloCam S340 — \u003cstrong\u003eGeneration 2\u003c\/strong\u003e (the model with the upgraded 3W SolarPlus panel, not the older 2.2W version). \u003cstrong\u003eBrand new, factory sealed\u003c\/strong\u003e in the original eufy retail packaging. Never opened, never powered on, untouched from the moment it left the factory floor.\u003c\/p\u003e\n        \u003cp\u003eSame product you'd find at JB Hi-Fi or The Good Guys — same retail box, same accessories, same full 12-month CamGuard warranty. Sourced through proper channels with all documentation intact.\u003c\/p\u003e\n        \u003cdiv class=\"s340f-sealed-stamps\"\u003e\n          \u003cdiv class=\"s340f-sealed-stamp\"\u003e\n            \u003cspan class=\"s340f-sealed-stamp-icon\"\u003e✦\u003c\/span\u003e\n            \u003cdiv class=\"s340f-sealed-stamp-h\"\u003eFactory Sealed\u003c\/div\u003e\n            \u003cdiv class=\"s340f-sealed-stamp-d\"\u003eNever opened\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"s340f-sealed-stamp\"\u003e\n            \u003cspan class=\"s340f-sealed-stamp-icon\"\u003e📦\u003c\/span\u003e\n            \u003cdiv class=\"s340f-sealed-stamp-h\"\u003eOriginal Retail Box\u003c\/div\u003e\n            \u003cdiv class=\"s340f-sealed-stamp-d\"\u003ePristine packaging\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"s340f-sealed-stamp\"\u003e\n            \u003cspan class=\"s340f-sealed-stamp-icon\"\u003e🛡\u003c\/span\u003e\n            \u003cdiv class=\"s340f-sealed-stamp-h\"\u003eFull Warranty\u003c\/div\u003e\n            \u003cdiv class=\"s340f-sealed-stamp-d\"\u003e12 months · CamGuard\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"s340f-sealed-stamp\"\u003e\n            \u003cspan class=\"s340f-sealed-stamp-icon\"\u003e2\u003c\/span\u003e\n            \u003cdiv class=\"s340f-sealed-stamp-h\"\u003eGeneration 2\u003c\/div\u003e\n            \u003cdiv class=\"s340f-sealed-stamp-d\"\u003e3W SolarPlus panel\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-section s340f-features\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-feat-head s340f-reveal\"\u003e\n        \u003cdiv class=\"s340f-eyebrow amber\"\u003eSix things it does properly\u003c\/div\u003e\n        \u003ch2 class=\"s340f-h2\"\u003eFlagship-tier \u003cem\u003eacross the board.\u003c\/em\u003e\n\u003c\/h2\u003e\n        \u003cp class=\"s340f-deck\"\u003eSix reasons the SoloCam S340 is eufy's most capable outdoor cam — and the one worth paying full retail for.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-feat-grid s340f-stagger\"\u003e\n        \u003carticle class=\"s340f-feat coral\"\u003e\n          \u003cdiv class=\"s340f-feat-icon\"\u003e2L\u003c\/div\u003e\n          \u003cdiv class=\"s340f-feat-eyebrow\"\u003eDual Lens\u003c\/div\u003e\n          \u003ch3\u003e3K wide + 2K telephoto.\u003c\/h3\u003e\n          \u003cp\u003eTwo physical lenses in one camera. The 3K wide-angle handles full-scene awareness (2880 × 1620, 135° FOV). The 2K telephoto is the detail lens — F1.6 aperture, paired digital crop for serious zoom-in. \u003cstrong\u003e8× hybrid zoom\u003c\/strong\u003e total. Pixel-peep up to 12 metres clearly. Read number plates from the eaves. Identify the bloke who keeps moving your bins — and the brand of his thongs.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s340f-feat amber\"\u003e\n          \u003cdiv class=\"s340f-feat-icon\"\u003e3W\u003c\/div\u003e\n          \u003cdiv class=\"s340f-feat-eyebrow\"\u003eSolarPlus · Gen 2\u003c\/div\u003e\n          \u003ch3\u003e3W panel. Up to 1.5× better.\u003c\/h3\u003e\n          \u003cp\u003eThe Gen 2 model ships with eufy's \u003cstrong\u003e3W SolarPlus panel\u003c\/strong\u003e — physically bigger and noticeably more efficient than the original 2.2W. Manufacturer testing puts it at \u003cstrong\u003eup to 1.5× better charging in low light\u003c\/strong\u003e, which means more reliable top-ups in winter, on overcast days, and in shaded mounting positions. The opposite of every \"smart home\" device launched since 2018 that needs charging every Tuesday.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s340f-feat magenta\"\u003e\n          \u003cdiv class=\"s340f-feat-icon\"\u003e💡\u003c\/div\u003e\n          \u003cdiv class=\"s340f-feat-eyebrow\"\u003eAfter dark\u003c\/div\u003e\n          \u003ch3\u003eColour night vision.\u003c\/h3\u003e\n          \u003cp\u003eBuilt-in spotlight kicks on when motion is detected, and the camera pulls \u003cstrong\u003efull-colour\u003c\/strong\u003e 3K out of total darkness. Properly identifiable footage — face, clothing, vehicle colour — not just grainy black-and-white silhouettes. F1.6 aperture wide-open means more light to the sensor before the spotlight even fires. \u003cem\u003e(Talk to the neighbours if you live in a unit. They'll probably want one too.)\u003c\/em\u003e\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s340f-feat teal\"\u003e\n          \u003cdiv class=\"s340f-feat-icon\"\u003e∞\u003c\/div\u003e\n          \u003cdiv class=\"s340f-feat-eyebrow\"\u003ePTZ Coverage\u003c\/div\u003e\n          \u003ch3\u003e360° pan, 70° tilt.\u003c\/h3\u003e\n          \u003cp\u003eEndless horizontal rotation and full vertical tilt — one S340 covers what used to take three static cameras. AI auto-tracks moving subjects across the entire arc, no manual panning required. Reset positions, schedule patrols, set blind spots in the app. The Aunty Carol of security cameras: sees just about everything.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s340f-feat indigo\"\u003e\n          \u003cdiv class=\"s340f-feat-icon\"\u003eAI\u003c\/div\u003e\n          \u003cdiv class=\"s340f-feat-eyebrow\"\u003eBionicMind\u003c\/div\u003e\n          \u003ch3\u003eTracks. Recognises. Remembers.\u003c\/h3\u003e\n          \u003cp\u003eOn-device AI detects humans and vehicles, tracks them automatically across the scene, and reduces false alerts dramatically (a moth crossing the lens does not constitute a person). Pair with a HomeBase S380 to unlock \u003cstrong\u003eBionicMind facial recognition\u003c\/strong\u003e — your camera literally learns the difference between Greg from next door and someone you've never seen before. Tells people from possums, neighbours from suspects.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s340f-feat mint\"\u003e\n          \u003cdiv class=\"s340f-feat-icon\"\u003e🌧\u003c\/div\u003e\n          \u003cdiv class=\"s340f-feat-eyebrow\"\u003eBuilt to cop it\u003c\/div\u003e\n          \u003ch3\u003eIP67 weatherproof.\u003c\/h3\u003e\n          \u003cp\u003eEngineered for a -20 °C to 50 °C operating range. A Queensland summer storm, a Tasmanian winter morning, a Top End wet-season downpour, a Perth heatwave — keeps watching through all of it. IP67 specifically means it can take a brief dunking and still work. Two-way audio is built in, too — for the times you want to politely tell the courier where to leave the parcel, or less politely tell an intruder where they can go.\u003c\/p\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-section s340f-afterdark\"\u003e\n    \u003cdiv class=\"s340f-container s340f-afterdark-inner\"\u003e\n      \u003cdiv class=\"s340f-reveal\"\u003e\n        \u003cdiv class=\"s340f-eyebrow\"\u003eAfter dark\u003c\/div\u003e\n        \u003ch2\u003eColour vision. \u003cem\u003eAuto-tracking.\u003c\/em\u003e\n\u003c\/h2\u003e\n        \u003cp\u003eMost outdoor cams give you grainy black-and-white infrared after sunset. Useful for identifying the rough silhouette of a person walking past. Less useful for figuring out if you actually know them, what colour shirt they're wearing, or whether they're carrying something they probably shouldn't be.\u003c\/p\u003e\n        \u003cp\u003eThe S340 takes a different approach. When motion is detected at night, the built-in spotlight kicks on and the camera records in \u003cstrong\u003efull-colour 3K\u003c\/strong\u003e. Properly clear, identifiable footage. The 360° PTZ then \u003cstrong\u003eauto-tracks the subject\u003c\/strong\u003e across the entire arc — no manual panning, no missed angles, no \"wish I'd pointed it the other way\" moment.\u003c\/p\u003e\n        \u003cp\u003ePrefer stealth monitoring? IR-only mode is available too — invisible infrared, no spotlight, no warning. You pick the mode in the app, or set different modes for day vs night, or different per camera if you're running more than one.\u003c\/p\u003e\n        \u003cdiv class=\"s340f-afterdark-pills\"\u003e\n          \u003cspan class=\"s340f-afterdark-pill\"\u003eColour night vision\u003c\/span\u003e\n          \u003cspan class=\"s340f-afterdark-pill\"\u003eAuto-tracking\u003c\/span\u003e\n          \u003cspan class=\"s340f-afterdark-pill\"\u003e8 m IR range\u003c\/span\u003e\n          \u003cspan class=\"s340f-afterdark-pill\"\u003eAdjustable spotlight\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s340f-spot-vis s340f-reveal\"\u003e\n        \u003cdiv class=\"s340f-spot-hud\"\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s340f-spot-rec\"\u003eREC · PTZ\u003c\/div\u003e\n\n        \u003cdiv class=\"s340f-spot-cam-wrap\"\u003e\n          \u003cdiv class=\"s340f-spot-cam-mount\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"s340f-spot-cam-body\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-spot-beam\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s340f-spot-pool\"\u003e\u003c\/div\u003e\n\n        \u003cdiv class=\"s340f-spot-figure\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s340f-spot-detect\"\u003e\n          \u003cdiv class=\"s340f-spot-detect-inner\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-spot-alert\"\u003eMotion · Auto-Tracking\u003c\/div\u003e\n\n        \u003cdiv class=\"s340f-spot-label\"\u003eDual-lens · 360° PTZ\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-section s340f-zero\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-zero-grid\"\u003e\n        \u003cdiv class=\"s340f-zero-text s340f-reveal\"\u003e\n          \u003cdiv class=\"s340f-eyebrow mint\"\u003eNo subscription\u003c\/div\u003e\n          \u003ch2 class=\"s340f-h2 cool\"\u003eYour footage. \u003cem\u003eYour house.\u003c\/em\u003e Not eufy's.\u003c\/h2\u003e\n          \u003cp\u003eThe S340 records to its own \u003cstrong\u003e8 GB built-in eMMC storage\u003c\/strong\u003e, or to a paired eufy HomeBase 3 for expanded capacity. Either way: no cloud account required, no monthly fee, no paywall quietly turning on after the first 12 months. Local-first by design.\u003c\/p\u003e\n          \u003cp\u003eeufy do offer optional cloud backup if you want extra redundancy. We don't push it. The camera works perfectly without, and most owners never bother — the local storage rolls over, and the events that matter usually get reviewed within days, not months. \u003cstrong\u003ePair with a HomeBase S380\u003c\/strong\u003e for up to 16TB of expandable storage and BionicMind facial recognition — but it's optional, not required.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-zero-card s340f-reveal\"\u003e\n          \u003cdiv class=\"s340f-zero-num\"\u003e$0\u003c\/div\u003e\n          \u003cdiv class=\"s340f-zero-lbl\"\u003eper month · forever\u003c\/div\u003e\n          \u003cdiv class=\"s340f-zero-sub\"\u003e8 GB built-in · HomeBase-expandable · no cloud lock-in\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-section s340f-specs-section\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-specs-head s340f-reveal\"\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"s340f-eyebrow muted\"\u003eSpecifications\u003c\/div\u003e\n          \u003ch2 class=\"s340f-h2\"\u003eEvery \u003cem\u003edetail.\u003c\/em\u003e\n\u003c\/h2\u003e\n        \u003c\/div\u003e\n        \u003cspan style=\"font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); font-weight: 600;\"\u003eREF: T8170TW1\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003ctable class=\"s340f-spec-table s340f-reveal\"\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n\u003ctd\u003eModel\u003c\/td\u003e\n\u003ctd\u003eeufy SoloCam S340 · Generation 2 (T8170TW1)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eCondition\u003c\/td\u003e\n\u003ctd\u003eBrand new — factory sealed in original retail packaging\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eSolar Panel\u003c\/td\u003e\n\u003ctd\u003e3W SolarPlus (Gen 2 upgrade · vs 2.2W on Gen 1)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eLow-light Charging\u003c\/td\u003e\n\u003ctd\u003eUp to 1.5× more efficient vs Gen 1 panel\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eResolution\u003c\/td\u003e\n\u003ctd\u003e3K wide (2880 × 1620) + 2K telephoto (2304 × 1296)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eZoom\u003c\/td\u003e\n\u003ctd\u003e8× hybrid zoom · up to 12 m sharp detail\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eField of View\u003c\/td\u003e\n\u003ctd\u003e135° diagonal (wide-angle)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003ePan \/ Tilt\u003c\/td\u003e\n\u003ctd\u003e355° horizontal · 70° vertical\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eNight Vision\u003c\/td\u003e\n\u003ctd\u003eColour, F1.6 aperture + built-in spotlight (up to 8 m)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003ePower\u003c\/td\u003e\n\u003ctd\u003eBuilt-in lithium-ion battery + 3W SolarPlus panel\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eBattery Life\u003c\/td\u003e\n\u003ctd\u003eUp to 3 months standalone · Indefinite with ~2 hrs daily sun\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eStorage\u003c\/td\u003e\n\u003ctd\u003e8 GB built-in (eMMC) · HomeBase S380 expandable to 16TB\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eWi-Fi\u003c\/td\u003e\n\u003ctd\u003e2.4 GHz · direct or via HomeBase 3\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eAI Detection\u003c\/td\u003e\n\u003ctd\u003eHuman, vehicle · BionicMind facial recognition w\/ HomeBase S380\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eSmart Home\u003c\/td\u003e\n\u003ctd\u003eAmazon Alexa · Google Assistant (HomeKit not supported)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eAudio\u003c\/td\u003e\n\u003ctd\u003eTwo-way audio · Built-in siren\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eWeather Rating\u003c\/td\u003e\n\u003ctd\u003eIP67 · operating -20 °C to 50 °C\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eWeight\u003c\/td\u003e\n\u003ctd\u003e~1.2 kg (2.65 lb)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eColour\u003c\/td\u003e\n\u003ctd\u003eWhite\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eSubscription\u003c\/td\u003e\n\u003ctd\u003eNot required · ever\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eWarranty\u003c\/td\u003e\n\u003ctd\u003eCamGuard 12-month · 30-day returns\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-section s340f-inbox\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-inbox-head s340f-reveal\"\u003e\n        \u003cdiv class=\"s340f-eyebrow magenta\"\u003eIn the pack\u003c\/div\u003e\n        \u003ch2 class=\"s340f-h2\"\u003eSealed retail box. \u003cem\u003eEverything included.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s340f-inbox-grid s340f-stagger\"\u003e\n        \u003cdiv class=\"s340f-inbox-item\"\u003e\n          \u003cdiv class=\"s340f-inbox-num\"\u003e01\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-name\"\u003eSoloCam S340 (Gen 2)\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-note\"\u003ePre-charged · ready to pair\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-inbox-item\"\u003e\n          \u003cdiv class=\"s340f-inbox-num\"\u003e02\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-name\"\u003e3W SolarPlus Panel\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-note\"\u003eSeparate panel · cable included\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-inbox-item\"\u003e\n          \u003cdiv class=\"s340f-inbox-num\"\u003e03\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-name\"\u003eMounting Brackets\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-note\"\u003eFor camera + solar panel\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-inbox-item\"\u003e\n          \u003cdiv class=\"s340f-inbox-num\"\u003e04\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-name\"\u003eScrew Pack\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-note\"\u003eAnchors + screws included\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-inbox-item\"\u003e\n          \u003cdiv class=\"s340f-inbox-num\"\u003e05\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-name\"\u003eQuick Start Guide\u003c\/div\u003e\n          \u003cdiv class=\"s340f-inbox-note\"\u003ePlain English · no jargon\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-section s340f-trust\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-trust-head s340f-reveal\"\u003e\n        \u003cdiv class=\"s340f-eyebrow teal\"\u003eWhy CamGuard\u003c\/div\u003e\n        \u003ch2 class=\"s340f-h2 cool\"\u003eSmall Aussie team. \u003cem\u003eReal support.\u003c\/em\u003e\n\u003c\/h2\u003e\n        \u003cp class=\"s340f-deck\" style=\"margin-inline: auto; text-align: left;\"\u003eWe're a small crew based in Townsville, QLD. Genuine eufy stock, sourced through proper channels, shipped fast.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s340f-trust-grid s340f-stagger\"\u003e\n        \u003cdiv class=\"s340f-trust-card coral\"\u003e\n          \u003cdiv class=\"s340f-trust-num\"\u003e01 · Genuine\u003c\/div\u003e\n          \u003ch3\u003e100% authentic stock\u003c\/h3\u003e\n          \u003cp\u003eBrand new, factory sealed in original eufy retail packaging. Not parallel-imported greymarket gear with the wrong firmware region. Not refurbished relabelled as new. Not an \"open box\" with a sticker. Every unit checked for shipping damage before it leaves us.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-trust-card amber\"\u003e\n          \u003cdiv class=\"s340f-trust-num\"\u003e02 · Aussie\u003c\/div\u003e\n          \u003ch3\u003eTownsville-based team\u003c\/h3\u003e\n          \u003cp\u003eSame timezone as you. Messages get answered within a few hours, usually faster — by a real person who knows the eufy range inside-out. We use these cameras at our own homes. So when we say \"this is the flagship if you want maximum coverage from one cam,\" we've tested that claim.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-trust-card teal\"\u003e\n          \u003cdiv class=\"s340f-trust-num\"\u003e03 · Fast\u003c\/div\u003e\n          \u003ch3\u003eDispatched in 1 business day\u003c\/h3\u003e\n          \u003cp\u003eAustralia Post Express included on every order over $99.00 — and this camera clears that bar on its own. No standard-ground slow lane: express, tracked, included. East-coast metro 1–3 business days, WA 2–4. Tracking goes to your phone the moment we drop it. Local Townsville pickup available if you'd rather grab it in person.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-trust-card mint\"\u003e\n          \u003cdiv class=\"s340f-trust-num\"\u003e04 · Stacked warranty\u003c\/div\u003e\n          \u003ch3\u003e12-month CamGuard cover\u003c\/h3\u003e\n          \u003cp\u003ePlus the statutory protection of Australian Consumer Law. Both apply, both stack in your favour. Something goes pear-shaped? Message us before opening a chargeback or a marketplace dispute — we'd rather sort it directly. Bad reviews live forever; helpful service stays cheaper than damage control.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-section s340f-ship\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-ship-head s340f-reveal\"\u003e\n        \u003cdiv class=\"s340f-eyebrow indigo\"\u003eLogistics\u003c\/div\u003e\n        \u003ch2 class=\"s340f-h2\"\u003eFast dispatch. \u003cem\u003eHonest cover.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s340f-ship-grid s340f-stagger\"\u003e\n        \u003cdiv class=\"s340f-ship-card\"\u003e\n          \u003ch4\u003e🚚 Express as Standard (orders over $99)\u003c\/h4\u003e\n          \u003cp\u003e\u003cspan class=\"s340f-ship-mint\"\u003eAustralia Post Express included\u003c\/span\u003e on every order over $99.00 — and this camera qualifies all by itself. No quiet upsell at checkout: express, tracked, included.\u003c\/p\u003e\n          \u003cp\u003eDispatched within 1 business day from Townsville, QLD. We aim for same-day on weekday orders placed before 2pm.\u003c\/p\u003e\n          \u003cp\u003eEast-coast metro: 1–3 business days · WA: 2–4 · Regional NT\/SA\/Tas: occasionally a touch longer · Local Townsville pickup available if you're nearby and prefer face-to-face.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-ship-card\"\u003e\n          \u003ch4\u003e🛡️ Stacked warranty\u003c\/h4\u003e\n          \u003cp\u003e\u003cspan class=\"s340f-ship-coral\"\u003e12-month CamGuard warranty\u003c\/span\u003e with express replacement if needed. Often quicker than the manufacturer's own returns process.\u003c\/p\u003e\n          \u003cp\u003e\u003cspan class=\"s340f-ship-amber\"\u003e30-day no-fuss returns\u003c\/span\u003e if you change your mind. \"No-fuss\" meaning exactly that — no quiz, no \"are you sure?\", no seven-question exit survey before we process it.\u003c\/p\u003e\n          \u003cp\u003eAustralian Consumer Law applies regardless of anything else. Reach out before opening a marketplace case — we'd rather fix things directly than wade through the platform's automated escalation flow.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-section s340f-faq\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-faq-head s340f-reveal\"\u003e\n        \u003cdiv class=\"s340f-eyebrow amber\"\u003eQuestions, briefly\u003c\/div\u003e\n        \u003ch2 class=\"s340f-h2\"\u003eSix things \u003cem\u003eworth knowing.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s340f-faq-list\"\u003e\n        \u003cdiv class=\"s340f-faq-item s340f-reveal\"\u003e\n          \u003cdiv class=\"s340f-faq-q\"\u003e\n\u003cspan class=\"s340f-faq-q-tag\"\u003eQ\u003c\/span\u003e What's the difference between Gen 1 and Gen 2?\u003c\/div\u003e\n          \u003cdiv class=\"s340f-faq-a\"\u003eThe headline upgrade is the solar panel: Gen 1 shipped with a \u003cstrong\u003e2.2W panel\u003c\/strong\u003e, Gen 2 ships with the \u003cstrong\u003e3W \"SolarPlus\" panel\u003c\/strong\u003e. eufy puts that at up to \u003cstrong\u003e1.5× better charging in low light\u003c\/strong\u003e. In practice: more reliable top-ups through Aussie winters, overcast days, and shaded mounting spots. Camera body, dual lenses, AI, app and warranty are identical between generations — the panel is the meaningful change. This listing is the Gen 2 (T8170TW1).\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-faq-item s340f-reveal\"\u003e\n          \u003cdiv class=\"s340f-faq-q\"\u003e\n\u003cspan class=\"s340f-faq-q-tag\"\u003eQ\u003c\/span\u003e Does it need a HomeBase?\u003c\/div\u003e\n          \u003cdiv class=\"s340f-faq-a\"\u003eNo — it works standalone, connecting direct to your 2.4 GHz Wi-Fi with 8 GB of onboard storage. You \u003cstrong\u003ecan\u003c\/strong\u003e pair it with a eufy HomeBase 3 if you want expanded storage and AI features. The HomeBase S380 unlocks \u003cstrong\u003eBionicMind facial recognition\u003c\/strong\u003e (up to 16TB of storage). Optional, not required.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-faq-item s340f-reveal\"\u003e\n          \u003cdiv class=\"s340f-faq-q\"\u003e\n\u003cspan class=\"s340f-faq-q-tag\"\u003eQ\u003c\/span\u003e Is there a monthly fee?\u003c\/div\u003e\n          \u003cdiv class=\"s340f-faq-a\"\u003e\n\u003cstrong\u003eNo. Never.\u003c\/strong\u003e Recording, AI detection, alerts, live view, two-way audio, PTZ control — all included. eufy do offer optional cloud storage if you want extra redundancy, but it's not required. The whole \"subscription quietly becomes mandatory\" industry pattern can sit this one out, thanks.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-faq-item s340f-reveal\"\u003e\n          \u003cdiv class=\"s340f-faq-q\"\u003e\n\u003cspan class=\"s340f-faq-q-tag\"\u003eQ\u003c\/span\u003e Apple HomeKit?\u003c\/div\u003e\n          \u003cdiv class=\"s340f-faq-a\"\u003eHonest answer: no. eufy's HomeKit support is uneven across their range and the S340 missed out. It works with \u003cstrong\u003eAmazon Alexa\u003c\/strong\u003e and \u003cstrong\u003eGoogle Assistant\u003c\/strong\u003e, but not HomeKit. If HomeKit's a must, look at the eufyCam 2C (via HomeBase 2 or 3) instead — we sell those too.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-faq-item s340f-reveal\"\u003e\n          \u003cdiv class=\"s340f-faq-q\"\u003e\n\u003cspan class=\"s340f-faq-q-tag\"\u003eQ\u003c\/span\u003e How does the dual lens actually work?\u003c\/div\u003e\n          \u003cdiv class=\"s340f-faq-a\"\u003eTwo physical lenses, two sensors. The 3K wide-angle handles full-scene coverage. The 2K telephoto is your detail\/zoom lens. When you zoom in via the app, the camera intelligently switches from the wide to the telephoto for clearer detail rather than just digitally cropping the wide image. Combined, you get \u003cstrong\u003e8× hybrid zoom\u003c\/strong\u003e with way more detail retention than a single-lens cam with the same digital zoom level.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s340f-faq-item s340f-reveal\"\u003e\n          \u003cdiv class=\"s340f-faq-q\"\u003e\n\u003cspan class=\"s340f-faq-q-tag\"\u003eQ\u003c\/span\u003e What if my mounting spot doesn't get heaps of sun?\u003c\/div\u003e\n          \u003cdiv class=\"s340f-faq-a\"\u003eThe Gen 2's 3W SolarPlus panel is specifically designed for this — it's noticeably more efficient in low-light conditions than the older 2.2W panel. The solar panel comes on a separate cable, so you can mount the camera in shade and run the panel to a sunnier spot. About 2 hours of daily direct sun keeps it indefinitely charged. If your spot gets less than that, USB-C top-ups are an easy fallback every few months.\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s340f-cta\"\u003e\n    \u003cdiv class=\"s340f-container s340f-cta-inner\"\u003e\n      \u003cdiv class=\"s340f-eyebrow\" style=\"color: var(--amber);\"\u003eFinal pitch\u003c\/div\u003e\n      \u003ch2\u003eMount it. \u003cem\u003eWatch your place.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003cp\u003eGenuine eufy SoloCam S340 (Generation 2) — \u003cstrong\u003ebrand new, factory sealed\u003c\/strong\u003e in original retail packaging. Dual-lens 3K + 2K, 360° PTZ, 8× hybrid zoom, colour night vision, on-device AI, the upgraded 3W SolarPlus panel — and zero subscription. The flagship outdoor cam worth paying full retail for.\u003c\/p\u003e\n      \u003cdiv class=\"s340f-cta-pills\"\u003e\n        \u003cspan class=\"s340f-cta-pill\"\u003e✦ Brand New · Sealed\u003c\/span\u003e\n        \u003cspan class=\"s340f-cta-pill\"\u003e📷 3K + 2K Dual\u003c\/span\u003e\n        \u003cspan class=\"s340f-cta-pill\"\u003e🔍 8× Hybrid Zoom\u003c\/span\u003e\n        \u003cspan class=\"s340f-cta-pill\"\u003e🔄 360° Pan + Tilt\u003c\/span\u003e\n        \u003cspan class=\"s340f-cta-pill\"\u003e☀️ 3W SolarPlus\u003c\/span\u003e\n        \u003cspan class=\"s340f-cta-pill\"\u003e$0\/mo · ever\u003c\/span\u003e\n        \u003cspan class=\"s340f-cta-pill\"\u003e🌧 IP67\u003c\/span\u003e\n        \u003cspan class=\"s340f-cta-pill\"\u003e🛡 12-Month Warranty\u003c\/span\u003e\n        \u003cspan class=\"s340f-cta-pill\"\u003e🚚 Express as Standard\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cfooter class=\"s340f-footer\"\u003e\n    \u003cdiv class=\"s340f-container\"\u003e\n      \u003cdiv class=\"s340f-footer-brand\"\u003eCamGuard Australia\u003c\/div\u003e\n      \u003cdiv class=\"s340f-footer-tag\"\u003eDual eyes. One sun. Sorted.\u003c\/div\u003e\n      \u003cp\u003e© 2026 CamGuard Australia · ABN 62 385 894 763 · A small team in Townsville, QLD\u003c\/p\u003e\n      \u003cdiv class=\"s340f-footer-divider\"\u003e\u003c\/div\u003e\n      \u003cp class=\"s340f-footer-legal\"\u003eCamGuard Australia is an independent reseller and is not an official or authorised supplier, distributor, or representative of eufy, Anker Innovations, or any of their affiliated entities. All product names, logos, and trademarks are the property of their respective owners. Records to 8GB onboard storage; there is no microSD card slot. Covered by the CamGuard 12-month in-house warranty — not a manufacturer warranty — in addition to Australian Consumer Law rights. Battery-life and storage-capacity figures are eufy's ratings and estimates; real-world results vary with usage, settings and conditions. The eufy SoloCam S340 is sold in Australia as Generation 2 (SKU T8170TW1) and ships with the upgraded 3W SolarPlus panel — not the original 2.2W panel that came with the Gen 1 version.\u003c\/p\u003e\n      \u003cp class=\"s340f-footer-legal\"\u003e\"Brand new · factory sealed\" indicates the product is sealed in original eufy retail packaging with all original accessories and documentation, sourced through proper channels. The \"1.5× better low-light charging\" claim is sourced from manufacturer marketing comparing the SolarPlus panel to the original 2.2W panel; real-world performance varies with conditions. Solar charging performance varies by mounting position, season and direct-sunlight exposure. Battery life, motion-detection range, night-vision distance and zoom range are approximate and vary with environmental conditions and configuration. The eufy SoloCam S340 connects to 2.4 GHz Wi-Fi only and is not compatible with Apple HomeKit. BionicMind facial recognition requires a paired eufy HomeBase S380 (sold separately). Specifications sourced from the manufacturer and believed to be accurate at time of listing; features and compatibility may be updated by the manufacturer without notice.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/footer\u003e\n\n\u003c\/div\u003e\n","brand":"eufy","offers":[{"title":"Default Title","offer_id":43073802043435,"sku":"CG-SCS340G2-BN-T","price":319.0,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0666\/0086\/1739\/files\/1500_1500.webp?v=1778363326","url":"https:\/\/www.camguardaustralia.com.au\/products\/eufy-security-solocam-s340-3k-ptz-dual-lense-solar-t81701w1-brand-new","provider":"CamGuard Australia","version":"1.0","type":"link"}