{"product_id":"eufy-security-solocam-s230-s40-open-box","title":"eufy Security SoloCam S230 (S40) | Open Box","description":"\u003c!--\n  =====================================================\n  eufy SoloCam S230 — NEW \/ OPEN BOX\n  CamGuard Australia · \"Sunset Watch · Driven by One Clock\"\n  =====================================================\n  Same showcase build as the Brand New listing, with all\n  condition language updated to reflect Open Box:\n   - Product itself is unused, never powered on\n   - Original retail packaging has been opened\n   - Same warranty, accessories and performance as new\n  =====================================================\n  Pure CSS · No JS · Shopify-safe · Scoped to .s230f\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 --s230f-clock     { syntax: '\u003cnumber\u003e';     inherits: true;  initial-value: 0; }\n@property --s230f-angle     { syntax: '\u003cangle\u003e';      inherits: false; initial-value: 0deg; }\n@property --s230f-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.s230f, .s230f *, .s230f *::before, .s230f *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n.s230f {\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.s230f a { color: inherit; text-decoration: none; }\n.s230f img { max-width: 100%; height: auto; display: block; }\n.s230f h1, .s230f h2, .s230f h3, .s230f 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.s230f p { text-wrap: pretty; }\n\n@keyframes s230f-fade-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }\n@keyframes s230f-text-grad { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }\n@keyframes s230f-shimmer { from { background-position: -200% 50%; } to { background-position: 200% 50%; } }\n@keyframes s230f-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }\n@keyframes s230f-tick { to { --s230f-clock: 1; } }\n@keyframes s230f-bird-fly { to { offset-distance: 100%; } }\n@keyframes s230f-cloud { from { transform: translateX(-140px); } to { transform: translateX(calc(100vw + 140px)); } }\n@keyframes s230f-halo-spin { to { --s230f-angle: 360deg; } }\n@keyframes s230f-type-breathe { from { font-variation-settings: 'wght' 400; } to { font-variation-settings: 'wght' 900; } }\n@keyframes s230f-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 s230f-mask-scan { to { --s230f-angle: 360deg; } }\n\n@supports (animation-timeline: view()) {\n  .s230f-reveal { animation: s230f-fade-up 1.4s var(--ease-spring) both; animation-timeline: view(); animation-range: entry 5% cover 30%; }\n  .s230f-stagger \u003e * { animation: s230f-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  .s230f *, .s230f *::before, .s230f *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition: none !important; }\n}\n\n.s230f-container { max-width: 1100px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 32px); }\n\n.s230f-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.s230f-nav-inner { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; }\n.s230f-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.s230f-logo span { background: linear-gradient(135deg, var(--coral-deep), var(--amber-deep), var(--magenta-deep), var(--teal-deep)); background-size: 300% 300%; animation: s230f-text-grad 6s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s230f-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.s230f-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: s230f-mint-pulse 2.4s ease-in-out infinite; }\n@keyframes s230f-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.s230f-hero { position: relative; background: var(--night-deep); overflow: hidden; isolation: isolate; }\n\n.s230f-stage {\n  --s230f-clock: 0;\n  animation: s230f-tick 40s linear infinite;\n  --sun-progress: max(0, sin(calc(var(--s230f-clock) * 360deg)));\n  --sun-x: calc(5% + var(--s230f-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(--s230f-clock) * 360deg))));\n  --moon-x: calc(5% + (var(--s230f-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(--s230f-clock) * 2)), 1);\n  --sky-dusk-opacity: clamp(0, calc(var(--twilight-bias) * (var(--s230f-clock) * 2 - 1)), 1);\n  --rays-vis: max(0, calc(1 - abs(calc(var(--s230f-clock) - 0.25)) * 10));\n  --storm-vis: max(0, calc(1 - abs(calc(var(--s230f-clock) - 0.42)) * 12));\n  --fog-dawn-vis: max(0, calc(1 - abs(var(--s230f-clock)) * 15));\n  --fog-dusk-vis: max(0, calc(1 - abs(calc(var(--s230f-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(--s230f-clock) - 0.78)) * 9));\n  position: relative;\n  block-size: clamp(620px, 82vh, 820px);\n  inline-size: 100%;\n  overflow: hidden;\n}\n\n.s230f-sky { position: absolute; inset: 0; z-index: 0; pointer-events: none; }\n.s230f-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.s230f-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.s230f-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.s230f-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.s230f-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) { .s230f-sun { inline-size: 64px; block-size: 64px; } }\n\n.s230f-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.s230f-crater { position: absolute; border-radius: 50%; background: oklch(70% 0.04 270 \/ 0.4); }\n.s230f-crater:nth-child(1) { inline-size: 12px; block-size: 12px; top: 22px; left: 22px; }\n.s230f-crater:nth-child(2) { inline-size: 8px; block-size: 8px; top: 38px; left: 42px; }\n.s230f-crater:nth-child(3) { inline-size: 6px; block-size: 6px; top: 28px; left: 50px; }\n@media (max-width: 640px) { .s230f-moon { inline-size: 50px; block-size: 50px; } .s230f-crater { display: none; } }\n\n.s230f-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.s230f-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.s230f-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.s230f-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.s230f-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.s230f-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.s230f-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.s230f-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.s230f-cloud::before, .s230f-cloud::after { content: ''; position: absolute; background: inherit; border-radius: 50%; }\n.s230f-cloud::before { inline-size: 60%; block-size: 160%; top: -50%; left: 16%; }\n.s230f-cloud::after { inline-size: 40%; block-size: 130%; top: -30%; left: 56%; }\n.s230f-c1 { top: 14%; inline-size: 70px; animation: s230f-cloud 80s linear infinite; }\n.s230f-c2 { top: 22%; inline-size: 60px; animation: s230f-cloud 110s linear infinite; animation-delay: -40s; }\n.s230f-c3 { top: 8%; inline-size: 80px; animation: s230f-cloud 95s linear infinite; animation-delay: -25s; }\n\n.s230f-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: s230f-bird-fly 18s linear infinite; z-index: 3; opacity: var(--bird-vis); pointer-events: none; }\n\n.s230f-tree { position: absolute; bottom: 22%; left: 4%; z-index: 4; }\n.s230f-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.s230f-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) { .s230f-tree { left: 1%; bottom: 22%; transform: scale(0.7); transform-origin: bottom left; } }\n\n.s230f-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.s230f-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.s230f-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: s230f-rays-spin 90s linear infinite; }\n@keyframes s230f-rays-spin { to { --godray-from: 360deg; } }\n\n.s230f-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.s230f-storm-cloud { position: absolute; border-radius: 100px; background: oklch(16% 0.04 260); z-index: 2; pointer-events: none; filter: blur(6px); }\n.s230f-storm-cloud::before, .s230f-storm-cloud::after { content: ''; position: absolute; background: inherit; border-radius: 50%; }\n.s230f-storm-cloud::before { inline-size: 70%; block-size: 200%; top: -65%; left: 10%; }\n.s230f-storm-cloud::after { inline-size: 55%; block-size: 170%; top: -50%; left: 50%; }\n.s230f-sc1 { top: 4%; left: 6%; inline-size: 260px; block-size: 56px; opacity: calc(var(--storm-vis) * 0.95); animation: s230f-storm-drift-a 55s linear infinite; }\n.s230f-sc2 { top: 14%; left: 28%; inline-size: 320px; block-size: 70px; opacity: var(--storm-vis); animation: s230f-storm-drift-b 75s linear infinite; }\n.s230f-sc3 { top: 2%; left: 52%; inline-size: 240px; block-size: 50px; opacity: calc(var(--storm-vis) * 0.9); animation: s230f-storm-drift-a 65s linear infinite -25s; }\n.s230f-sc4 { top: 17%; left: 68%; inline-size: 300px; block-size: 60px; opacity: calc(var(--storm-vis) * 0.85); animation: s230f-storm-drift-b 85s linear infinite -35s; }\n.s230f-sc5 { top: 7%; left: 84%; inline-size: 220px; block-size: 48px; opacity: calc(var(--storm-vis) * 0.9); animation: s230f-storm-drift-a 70s linear infinite -45s; }\n.s230f-sc6 { top: 22%; left: 12%; inline-size: 280px; block-size: 50px; opacity: calc(var(--storm-vis) * 0.65); animation: s230f-storm-drift-b 95s linear infinite -15s; background: oklch(25% 0.04 260); filter: blur(10px); }\n.s230f-sc7 { top: 25%; left: 50%; inline-size: 260px; block-size: 48px; opacity: calc(var(--storm-vis) * 0.6); animation: s230f-storm-drift-a 100s linear infinite -55s; background: oklch(28% 0.04 260); filter: blur(12px); }\n\n@keyframes s230f-storm-drift-a { 0%, 100% { transform: translateX(-40px); } 50% { transform: translateX(40px); } }\n@keyframes s230f-storm-drift-b { 0%, 100% { transform: translateX(30px); } 50% { transform: translateX(-30px); } }\n\n.s230f-rain { position: absolute; inset: 0; z-index: 4; pointer-events: none; opacity: var(--storm-vis); overflow: hidden; }\n.s230f-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: s230f-drop-fall var(--s, 0.7s) linear var(--d, 0s) infinite; mix-blend-mode: screen; }\n@keyframes s230f-drop-fall { 0% { top: -10%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { top: 110%; opacity: 0; } }\n\n.s230f-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: s230f-lightning-flash 40s steps(1, end) infinite; }\n@keyframes s230f-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.s230f-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: s230f-aurora-wave 11s ease-in-out infinite; }\n@keyframes s230f-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.s230f-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: s230f-aurora-wave-2 14s ease-in-out infinite; }\n@keyframes s230f-aurora-wave-2 { 0%, 100% { transform: scaleY(1) skewX(4deg) translateX(-2%); } 50% { transform: scaleY(0.92) skewX(-4deg) translateX(2%); } }\n\n.s230f-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: s230f-fog-drift 28s ease-in-out infinite; }\n@keyframes s230f-fog-drift { 0%, 100% { transform: translateX(-3%) scaleX(1); } 50% { transform: translateX(3%) scaleX(1.04); } }\n\n.s230f-tree-canopy { transform-origin: bottom center; animation: s230f-tree-sway 4s ease-in-out infinite; }\n@keyframes s230f-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.s230f-camera-scene { position: absolute; bottom: 25%; right: 14%; perspective: 1200px; z-index: 6; cursor: pointer; }\n.s230f-camera-3d { position: relative; inline-size: 80px; block-size: 70px; transform-style: preserve-3d; transition: transform 1.4s var(--ease-spring); }\n.s230f-camera-scene:hover .s230f-camera-3d { transform: rotateY(24deg) rotateX(-12deg); }\n.s230f-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.s230f-cam-body { position: relative; inline-size: 64px; block-size: 50px; 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.s230f-cam-solar { position: absolute; top: -6px; left: 14%; right: 14%; block-size: 9px; background: linear-gradient(180deg, oklch(28% 0.04 250), oklch(18% 0.04 250)); border-radius: 12% 12% 4% 4% \/ 28% 28% 4% 4%; transform: translateZ(8px); }\n.s230f-cam-lens { position: absolute; top: 30%; left: 50%; inline-size: 26px; block-size: 26px; 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: translate(-50%, 0) translateZ(20px); box-shadow: inset 0 0 4px oklch(0% 0 0 \/ 0.4); }\n.s230f-cam-lens::after { content: ''; position: absolute; inline-size: 6px; block-size: 6px; background: oklch(98% 0 0 \/ 0.4); border-radius: 50%; top: 4px; left: 4px; }\n.s230f-cam-led { position: absolute; top: 6px; right: 10px; 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)); transform: translateZ(22px); }\n@media (max-width: 640px) { .s230f-camera-scene { right: 8%; bottom: 24%; } }\n\n.s230f-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.s230f-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) { .s230f .s230f-spotlight { inline-size: 240px; block-size: 220px; } .s230f .s230f-spotlight-pool { inline-size: 180px; bottom: -100px; } }\n\n.s230f-grain { position: absolute; inset: 0; filter: url(#s230f-grain-filter); pointer-events: none; z-index: 10; opacity: 0.18; mix-blend-mode: overlay; }\n\n.s230f-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.s230f-status-dot { inline-size: 8px; block-size: 8px; border-radius: 50%; flex-shrink: 0; }\n.s230f-status.solar { bottom: 19%; right: 16%; }\n.s230f-status.solar .s230f-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.s230f-status.spot { bottom: 14%; right: 16%; }\n.s230f-status.spot .s230f-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) { .s230f-status { font-size: 10px; padding: 5px 10px; } .s230f-status.solar { bottom: 20%; right: 4%; } .s230f-status.spot { bottom: 14%; right: 4%; } }\n\n.s230f-hero-overlay { position: absolute; inset: 0; z-index: 9; display: flex; align-items: center; pointer-events: none; }\n.s230f-hero-text { inline-size: 100%; padding: 0 clamp(20px, 4vw, 40px); max-inline-size: 1100px; margin-inline: auto; pointer-events: auto; }\n.s230f-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.s230f-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.s230f-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.s230f-hero h1 em { font-style: normal; background: linear-gradient(135deg, var(--amber), var(--coral), var(--magenta), var(--amber)); background-size: 300% 300%; animation: s230f-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()) { .s230f-hero h1 em { animation: s230f-type-breathe 1.6s linear both; animation-timeline: view(); animation-range: entry 0% cover 40%; } }\n\n.s230f-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.s230f-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.s230f-hero-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.s230f-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.s230f-hero-pill.amber { color: color-mix(in oklch, var(--amber) 80%, white); border-color: color-mix(in oklch, var(--amber) 35%, transparent); }\n.s230f-hero-pill.coral { color: color-mix(in oklch, var(--coral) 80%, white); border-color: color-mix(in oklch, var(--coral) 35%, transparent); }\n.s230f-hero-pill.mint { color: color-mix(in oklch, var(--mint) 80%, white); border-color: color-mix(in oklch, var(--mint) 40%, transparent); }\n.s230f-hero-pill.magenta { color: color-mix(in oklch, var(--magenta) 80%, white); border-color: color-mix(in oklch, var(--magenta) 35%, transparent); }\n\n.s230f-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: s230f-shimmer 18s linear infinite; padding-block: 14px; color: var(--paper); overflow: hidden; }\n.s230f-strip-track { display: inline-flex; gap: 36px; white-space: nowrap; animation: s230f-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.s230f-strip-track span { display: inline-flex; align-items: center; gap: 12px; }\n.s230f-strip-track span::after { content: '◆'; color: oklch(98% 0.05 80); font-size: 8px; }\n\n.s230f-section { padding-block: clamp(64px, 10vh, 120px); }\n\n.s230f-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.s230f-eyebrow::before { content: ''; inline-size: 22px; block-size: 1px; background: currentColor; }\n.s230f-eyebrow.coral { color: var(--coral-deep); }\n.s230f-eyebrow.amber { color: var(--amber-deep); }\n.s230f-eyebrow.magenta { color: var(--magenta-deep); }\n.s230f-eyebrow.teal { color: var(--teal-deep); }\n.s230f-eyebrow.mint { color: var(--mint-deep); }\n.s230f-eyebrow.indigo { color: var(--indigo-deep); }\n.s230f-eyebrow.muted { color: var(--ink-3); }\n\n.s230f-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.s230f-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: s230f-text-grad 6s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s230f-h2.cool em { background: linear-gradient(135deg, var(--teal-deep), var(--indigo-deep), var(--mint-deep)); background-size: 200% 200%; animation: s230f-text-grad 6s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s230f-deck { font-size: clamp(15px, 1.8vw, 18px); color: var(--ink-2); max-inline-size: 580px; line-height: 1.65; margin-bottom: 48px; }\n.s230f-deck strong { color: var(--ink); font-weight: 600; }\n\n\/* OPEN BOX EXPLAINER — sits between Big Idea and Features *\/\n.s230f-openbox { background: var(--paper-2); border-block: 1px solid var(--line-soft); }\n.s230f-ob-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.s230f-ob-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; block-size: 4px; background: linear-gradient(90deg, var(--coral), var(--amber), var(--magenta), var(--teal)); background-size: 200% 100%; animation: s230f-shimmer 4s linear infinite; }\n.s230f-ob-card h2 { margin-bottom: 16px; }\n.s230f-ob-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.s230f-ob-card p:last-child { margin-bottom: 0; }\n.s230f-ob-card strong { color: var(--ink); font-weight: 600; }\n.s230f-ob-stamps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 22px; }\n@media (min-width: 600px) { .s230f .s230f-ob-stamps { grid-template-columns: repeat(4, 1fr); } }\n.s230f-ob-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.s230f-ob-stamp:hover { transform: translateY(-2px); }\n.s230f-ob-stamp:nth-child(1) { background: color-mix(in oklch, var(--coral) 8%, var(--paper)); border-color: color-mix(in oklch, var(--coral) 20%, transparent); }\n.s230f-ob-stamp:nth-child(2) { background: color-mix(in oklch, var(--amber) 9%, var(--paper)); border-color: color-mix(in oklch, var(--amber) 22%, transparent); }\n.s230f-ob-stamp:nth-child(3) { background: color-mix(in oklch, var(--mint) 9%, var(--paper)); border-color: color-mix(in oklch, var(--mint) 22%, transparent); }\n.s230f-ob-stamp:nth-child(4) { background: color-mix(in oklch, var(--magenta) 7%, var(--paper)); border-color: color-mix(in oklch, var(--magenta) 18%, transparent); }\n.s230f-ob-stamp-icon { font-size: 22px; margin-bottom: 6px; line-height: 1; display: block; }\n.s230f-ob-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.s230f-ob-stamp-d { font-size: 11.5px; color: var(--ink-3); line-height: 1.4; }\n\n.s230f-bigidea { background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%); position: relative; overflow: hidden; }\n.s230f-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.s230f-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.s230f-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) { .s230f .s230f-bv-grid { grid-template-columns: 0.9fr 1.1fr; align-items: center; } }\n.s230f-bigidea-text p { font-size: clamp(16px, 1.9vw, 19px); color: var(--ink-2); line-height: 1.7; margin-bottom: 12px; }\n.s230f-bigidea-text strong { color: var(--ink); font-weight: 600; }\n\n@property --bv-pct { syntax: '\u003cinteger\u003e'; inherits: false; initial-value: 93; }\n\n.s230f-bv-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.s230f-bv-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(--amber) 30%, transparent) 0%, transparent 60%); pointer-events: none; animation: s230f-bv-halo 5s ease-in-out infinite; }\n@keyframes s230f-bv-halo { 0%, 100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } }\n.s230f-bv-sun { position: absolute; top: 28px; right: 32px; font-size: 38px; z-index: 3; filter: drop-shadow(0 0 16px color-mix(in oklch, var(--amber) 70%, transparent)); animation: s230f-bv-sun-pulse 3s ease-in-out infinite; }\n@keyframes s230f-bv-sun-pulse { 0%, 100% { transform: scale(1) rotate(0deg); filter: drop-shadow(0 0 14px color-mix(in oklch, var(--amber) 55%, transparent)); } 50% { transform: scale(1.15) rotate(20deg); filter: drop-shadow(0 0 30px color-mix(in oklch, var(--amber) 90%, transparent)); } }\n.s230f-bv-pulse { position: absolute; top: 70px; right: 50px; inline-size: 4px; block-size: 100px; background: linear-gradient(180deg, color-mix(in oklch, var(--amber) 85%, transparent) 0%, transparent 100%); border-radius: 2px; filter: blur(1px); z-index: 2; opacity: 0; animation: s230f-bv-pulse-flow 2s ease-out infinite; }\n@keyframes s230f-bv-pulse-flow { 0% { opacity: 0; transform: translateY(-12px) scaleY(0.5); } 25% { opacity: 1; } 100% { opacity: 0; transform: translateY(50px) scaleY(1.4); } }\n.s230f-bv-stat { display: flex; align-items: baseline; gap: 18px; margin-bottom: 26px; position: relative; z-index: 3; }\n.s230f-bv-num { --bv-pct: 93; font-family: 'Sora', sans-serif; font-variation-settings: 'wght' 800, 'CASL' 0.5, 'slnt' -6; font-size: clamp(4rem, 9vw, 6.5rem); letter-spacing: -0.05em; line-height: 0.85; background: linear-gradient(135deg, var(--mint), var(--teal-deep)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; display: inline-flex; align-items: baseline; counter-reset: bv-counter var(--bv-pct); animation: s230f-bv-tick 6s linear infinite; }\n.s230f-bv-num::before { content: counter(bv-counter); }\n.s230f-bv-num::after { content: \"%\"; font-size: 0.55em; opacity: 0.8; margin-left: 2px; font-variation-settings: 'wght' 600; }\n@keyframes s230f-bv-tick { 0% { --bv-pct: 93; } 18% { --bv-pct: 96; } 36% { --bv-pct: 91; } 52% { --bv-pct: 95; } 68% { --bv-pct: 92; } 84% { --bv-pct: 94; } 100% { --bv-pct: 93; } }\n@supports not (counter-reset: x var(--y)) { .s230f-bv-num { animation: none; } .s230f-bv-num::before { content: \"93\"; } }\n.s230f-bv-stat-lbl { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mint-deep); max-inline-size: 14ch; line-height: 1.4; }\n.s230f-bv-bar { position: relative; inline-size: 100%; block-size: 40px; background: var(--paper-3); border-radius: 10px; overflow: hidden; margin-bottom: 16px; border: 1px solid var(--line); z-index: 2; }\n.s230f-bv-fill { position: absolute; top: 3px; bottom: 3px; left: 3px; background: linear-gradient(90deg, var(--mint) 0%, var(--mint-deep) 70%, oklch(80% 0.13 175) 100%); border-radius: 7px; animation: s230f-bv-fill-pulse 6s linear infinite; box-shadow: 0 0 12px color-mix(in oklch, var(--mint) 50%, transparent); }\n@keyframes s230f-bv-fill-pulse { 0% { right: 7%; } 18% { right: 4%; } 36% { right: 9%; } 52% { right: 5%; } 68% { right: 8%; } 84% { right: 6%; } 100% { right: 7%; } }\n.s230f-bv-fill::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, oklch(98% 0 0 \/ 0.5) 50%, transparent 100%); animation: s230f-bv-shimmer 2.4s linear infinite; border-radius: 7px; }\n@keyframes s230f-bv-shimmer { from { transform: translateX(-100%); } to { transform: translateX(100%); } }\n.s230f-bv-marks { display: flex; justify-content: space-between; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 600; letter-spacing: 0.1em; color: var(--ink-3); position: relative; z-index: 2; }\n.s230f-bv-marks span:first-child, .s230f-bv-marks span:last-child { color: var(--ink-2); font-weight: 700; }\n.s230f-bv-marks span:last-child::before { content: '◆ '; color: var(--mint-deep); }\n\n.s230f-features { background: var(--paper); }\n.s230f-feat-head { text-align: center; margin-bottom: 56px; }\n.s230f-feat-head .s230f-deck { margin-inline: auto; }\n.s230f-feat-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }\n@media (min-width: 700px) { .s230f .s230f-feat-grid { grid-template-columns: repeat(2, 1fr); } }\n@media (min-width: 1000px) { .s230f .s230f-feat-grid { grid-template-columns: repeat(3, 1fr); } }\n.s230f-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.s230f-feat::before { content: ''; position: absolute; top: -60px; right: -60px; inline-size: 180px; block-size: 180px; border-radius: 50%; z-index: -1; }\n.s230f-feat.coral::before { background: radial-gradient(circle, color-mix(in oklch, var(--coral) 16%, transparent), transparent 70%); }\n.s230f-feat.amber::before { background: radial-gradient(circle, color-mix(in oklch, var(--amber) 18%, transparent), transparent 70%); }\n.s230f-feat.magenta::before { background: radial-gradient(circle, color-mix(in oklch, var(--magenta) 14%, transparent), transparent 70%); }\n.s230f-feat.teal::before { background: radial-gradient(circle, color-mix(in oklch, var(--teal) 16%, transparent), transparent 70%); }\n.s230f-feat.indigo::before { background: radial-gradient(circle, color-mix(in oklch, var(--indigo) 14%, transparent), transparent 70%); }\n.s230f-feat.mint::before { background: radial-gradient(circle, color-mix(in oklch, var(--mint) 18%, transparent), transparent 70%); }\n.s230f-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.s230f-feat-grid:has(.s230f-feat:nth-child(1):hover) .s230f-feat:nth-child(2) { transform: translateX(-3px) rotate(-0.4deg); }\n.s230f-feat-grid:has(.s230f-feat:nth-child(2):hover) .s230f-feat:nth-child(1) { transform: translateX(3px) rotate(0.4deg); }\n.s230f-feat-grid:has(.s230f-feat:nth-child(2):hover) .s230f-feat:nth-child(3) { transform: translateX(-3px) rotate(-0.4deg); }\n.s230f-feat-grid:has(.s230f-feat:nth-child(3):hover) .s230f-feat:nth-child(2) { transform: translateX(3px) rotate(0.4deg); }\n.s230f-feat-grid:has(.s230f-feat:nth-child(4):hover) .s230f-feat:nth-child(5) { transform: translateX(-3px) rotate(-0.4deg); }\n.s230f-feat-grid:has(.s230f-feat:nth-child(5):hover) .s230f-feat:nth-child(4) { transform: translateX(3px) rotate(0.4deg); }\n.s230f-feat-grid:has(.s230f-feat:nth-child(5):hover) .s230f-feat:nth-child(6) { transform: translateX(-3px) rotate(-0.4deg); }\n.s230f-feat-grid:has(.s230f-feat:nth-child(6):hover) .s230f-feat:nth-child(5) { transform: translateX(3px) rotate(0.4deg); }\n.s230f-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.s230f-feat.coral .s230f-feat-icon { background: linear-gradient(135deg, var(--coral), var(--coral-deep)); }\n.s230f-feat.amber .s230f-feat-icon { background: linear-gradient(135deg, var(--amber), var(--amber-deep)); }\n.s230f-feat.magenta .s230f-feat-icon { background: linear-gradient(135deg, var(--magenta), var(--magenta-deep)); }\n.s230f-feat.teal .s230f-feat-icon { background: linear-gradient(135deg, var(--teal), var(--teal-deep)); }\n.s230f-feat.indigo .s230f-feat-icon { background: linear-gradient(135deg, var(--indigo), var(--indigo-deep)); }\n.s230f-feat.mint .s230f-feat-icon { background: linear-gradient(135deg, var(--mint), var(--mint-deep)); }\n.s230f-feat.coral .s230f-feat-icon::before, .s230f-feat.coral .s230f-feat-icon::after { content: ''; position: absolute; inset: 20%; border: 1.5px solid var(--paper); border-radius: 50%; opacity: 0; z-index: 0; animation: s230f-focus-pulse 2.6s ease-out infinite; pointer-events: none; }\n.s230f-feat.coral .s230f-feat-icon::after { animation-delay: 1.3s; }\n@keyframes s230f-focus-pulse { 0% { transform: scale(0.4); opacity: 0; } 20% { opacity: 0.85; } 100% { transform: scale(2); opacity: 0; } }\n.s230f-feat.amber .s230f-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: s230f-feat-spin 14s linear infinite; border-radius: 50%; }\n@keyframes s230f-feat-spin { to { transform: rotate(360deg); } }\n.s230f-feat.magenta .s230f-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: s230f-spot-pulse 2.2s ease-in-out infinite; }\n@keyframes s230f-spot-pulse { 0%, 100% { opacity: 0; } 50% { opacity: 0.9; } }\n.s230f-feat.teal .s230f-feat-icon::before, .s230f-feat.teal .s230f-feat-icon::after { content: ''; position: absolute; inset: 0; border: 1.5px solid var(--paper); border-radius: 50%; opacity: 0; z-index: 0; animation: s230f-wave-out 2.4s ease-out infinite; pointer-events: none; }\n.s230f-feat.teal .s230f-feat-icon::after { animation-delay: 1.2s; }\n@keyframes s230f-wave-out { 0% { transform: scale(0.3); opacity: 0; } 18% { opacity: 0.95; } 100% { transform: scale(2.3); opacity: 0; } }\n.s230f-feat.indigo .s230f-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: s230f-ai-scan 2s ease-in-out infinite; }\n@keyframes s230f-ai-scan { 0%, 100% { top: 18%; } 50% { top: 82%; } }\n.s230f-feat.mint .s230f-feat-icon::before, .s230f-feat.mint .s230f-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: s230f-drop-fall 1.2s linear infinite; }\n.s230f-feat.mint .s230f-feat-icon::before { left: 32%; animation-delay: 0s; }\n.s230f-feat.mint .s230f-feat-icon::after { left: 64%; animation-delay: 0.5s; }\n.s230f-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.s230f-feat.coral .s230f-feat-eyebrow { color: var(--coral-deep); }\n.s230f-feat.amber .s230f-feat-eyebrow { color: var(--amber-deep); }\n.s230f-feat.magenta .s230f-feat-eyebrow { color: var(--magenta-deep); }\n.s230f-feat.teal .s230f-feat-eyebrow { color: var(--teal-deep); }\n.s230f-feat.indigo .s230f-feat-eyebrow { color: var(--indigo-deep); }\n.s230f-feat.mint .s230f-feat-eyebrow { color: var(--mint-deep); }\n.s230f-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.s230f-feat p { font-size: 14.5px; color: var(--ink-2); line-height: 1.7; }\n\n.s230f-afterdark { background: var(--night-deep); color: var(--paper); position: relative; overflow: hidden; isolation: isolate; }\n.s230f-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.s230f-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.s230f-afterdark-inner { display: grid; gap: clamp(40px, 6vw, 72px); align-items: center; }\n@media (min-width: 900px) { .s230f .s230f-afterdark-inner { grid-template-columns: 1.1fr 1fr; } }\n.s230f-afterdark .s230f-eyebrow { color: var(--amber); }\n.s230f-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.s230f-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: s230f-text-grad 5s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s230f-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.s230f-afterdark p strong { color: var(--paper); font-weight: 600; }\n.s230f-afterdark-pills { display: flex; flex-wrap: wrap; gap: 8px; }\n.s230f-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.s230f-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; --s230f-angle: 0deg; mask: conic-gradient(from var(--s230f-angle), black 0deg, black 120deg, color-mix(in oklch, black 60%, transparent) 200deg, black 320deg, black 360deg); -webkit-mask: conic-gradient(from var(--s230f-angle), black 0deg, black 120deg, color-mix(in oklch, black 60%, transparent) 200deg, black 320deg, black 360deg); animation: s230f-mask-scan 14s linear infinite; }\n.s230f-spot-cam-wrap { position: absolute; top: 8%; left: 50%; transform: translateX(-50%); z-index: 5; }\n.s230f-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.s230f-spot-cam-body { position: relative; inline-size: 80px; block-size: 60px; 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.s230f-spot-cam-body::after { content: ''; position: absolute; top: 30%; left: 50%; inline-size: 32px; block-size: 32px; 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); transform: translateX(-50%); box-shadow: 0 0 12px color-mix(in oklch, var(--amber) 40%, transparent); }\n.s230f-spot-beam { position: absolute; top: 16%; 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: s230f-bloom 2.4s var(--ease-bloom) both; }\n@supports (animation-timeline: view()) { .s230f .s230f-spot-beam { animation: s230f-bloom 2.4s var(--ease-bloom) both; animation-timeline: view(); animation-range: entry 5% cover 40%; } }\n.s230f-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.s230f-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.s230f-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: s230f-figure-walk 10s ease-in-out infinite; filter: drop-shadow(0 4px 6px oklch(0% 0 0 \/ 0.4)); }\n.s230f-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.s230f-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 s230f-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.s230f-spot-detect { position: absolute; bottom: 13%; left: -10%; inline-size: 36px; block-size: 70px; z-index: 5; animation: s230f-detect-follow 10s ease-in-out infinite; opacity: 0; }\n.s230f-spot-detect::before, .s230f-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.s230f-spot-detect::before { top: -3px; left: -3px; border-right: none; border-bottom: none; }\n.s230f-spot-detect::after { bottom: -3px; right: -3px; border-left: none; border-top: none; }\n.s230f-spot-detect-inner { position: absolute; inset: 0; }\n.s230f-spot-detect-inner::before, .s230f-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.s230f-spot-detect-inner::before { top: -3px; right: -3px; border-left: none; border-bottom: none; }\n.s230f-spot-detect-inner::after { bottom: -3px; left: -3px; border-right: none; border-top: none; }\n@keyframes s230f-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.s230f-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: s230f-alert-flash 10s ease-in-out infinite; opacity: 0; display: flex; align-items: center; gap: 6px; }\n.s230f-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: s230f-alert-blink 0.4s steps(2, end) infinite; }\n@keyframes s230f-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 s230f-alert-blink { 0%, 50% { opacity: 1; } 50.01%, 100% { opacity: 0.2; } }\n.s230f-spot-hud { position: absolute; inset: 12px; pointer-events: none; z-index: 4; }\n.s230f-spot-hud::before, .s230f-spot-hud::after, .s230f-spot-hud \u003e span::before, .s230f-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.s230f-spot-hud::before { top: 0; left: 0; border-right: none; border-bottom: none; }\n.s230f-spot-hud::after { top: 0; right: 0; border-left: none; border-bottom: none; }\n.s230f-spot-hud \u003e span { position: absolute; inset: 0; }\n.s230f-spot-hud \u003e span::before { bottom: 0; left: 0; border-right: none; border-top: none; }\n.s230f-spot-hud \u003e span::after { bottom: 0; right: 0; border-left: none; border-top: none; }\n.s230f-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.s230f-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: s230f-rec-blink 1.4s ease-in-out infinite; }\n@keyframes s230f-rec-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }\n\n.s230f-zero { background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%); position: relative; overflow: hidden; }\n.s230f-zero-grid { display: grid; gap: clamp(32px, 5vw, 56px); }\n@media (min-width: 800px) { .s230f .s230f-zero-grid { grid-template-columns: 1fr 1fr; align-items: center; } }\n.s230f-zero-text h2 { margin-bottom: 18px; }\n.s230f-zero-text p { font-size: 16px; color: var(--ink-2); line-height: 1.7; margin-bottom: 14px; }\n.s230f-zero-text strong { color: var(--ink); font-weight: 600; }\n.s230f-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.s230f-zero-card::before { content: ''; position: absolute; inset: -50%; background: conic-gradient(from var(--s230f-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: s230f-halo-spin 18s linear infinite; pointer-events: none; filter: blur(40px); z-index: 0; }\n.s230f-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.s230f-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.s230f-zero-sub { font-size: 14px; color: oklch(85% 0.01 80); margin-top: 18px; position: relative; z-index: 2; }\n\n.s230f-specs-section { background: var(--paper); }\n.s230f-specs-head { margin-bottom: 40px; display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 16px; }\n.s230f-spec-table { inline-size: 100%; border-collapse: collapse; background: var(--paper); border-radius: 18px; overflow: hidden; border: 1px solid var(--line); }\n.s230f-spec-table tr { border-bottom: 1px solid var(--line-soft); transition: background 0.2s ease; }\n.s230f-spec-table tr:last-child { border-bottom: none; }\n.s230f-spec-table tr:has(td:hover) { background: var(--paper-2); }\n.s230f-spec-table td { padding: 14px 22px; font-size: 14px; vertical-align: top; }\n.s230f-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.s230f-spec-table td:last-child { color: var(--ink); font-weight: 500; }\n\n.s230f-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: s230f-text-grad 18s ease infinite; border-block: 1px solid var(--line-soft); }\n.s230f-inbox-head { text-align: center; margin-bottom: 40px; }\n.s230f-inbox-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 14px; max-width: 920px; margin-inline: auto; }\n.s230f-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.s230f-inbox-item:hover { transform: translateY(-3px); }\n.s230f-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.s230f-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.s230f-inbox-note { font-size: 12.5px; color: var(--ink-3); }\n\n.s230f-trust { background: var(--paper); }\n.s230f-trust-head { text-align: center; margin-bottom: 40px; }\n.s230f-trust-grid { display: grid; gap: 14px; max-width: 920px; margin-inline: auto; }\n@media (min-width: 600px) { .s230f .s230f-trust-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: auto auto auto 1fr; } .s230f .s230f-trust-card { grid-row: span 4; display: grid; grid-template-rows: subgrid; gap: 0; } }\n.s230f-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.s230f-trust-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px oklch(0% 0 0 \/ 0.06); }\n.s230f-trust-card.coral { background: color-mix(in oklch, var(--coral) 10%, var(--paper)); border-color: color-mix(in oklch, var(--coral) 22%, transparent); }\n.s230f-trust-card.amber { background: color-mix(in oklch, var(--amber) 12%, var(--paper)); border-color: color-mix(in oklch, var(--amber) 25%, transparent); }\n.s230f-trust-card.teal { background: color-mix(in oklch, var(--teal) 10%, var(--paper)); border-color: color-mix(in oklch, var(--teal) 22%, transparent); }\n.s230f-trust-card.mint { background: color-mix(in oklch, var(--mint) 14%, var(--paper)); border-color: color-mix(in oklch, var(--mint) 25%, transparent); }\n.s230f-trust-num { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; padding-bottom: 12px; }\n.s230f-trust-card.coral .s230f-trust-num { color: var(--coral-deep); }\n.s230f-trust-card.amber .s230f-trust-num { color: var(--amber-deep); }\n.s230f-trust-card.teal .s230f-trust-num { color: var(--teal-deep); }\n.s230f-trust-card.mint .s230f-trust-num { color: var(--mint-deep); }\n.s230f-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.s230f-trust-card p { font-size: 14px; color: var(--ink-2); line-height: 1.65; }\n\n.s230f-ship { background: var(--paper-2); border-block: 1px solid var(--line-soft); }\n.s230f-ship-head { text-align: center; margin-bottom: 40px; }\n.s230f-ship-grid { display: grid; gap: 14px; max-width: 920px; margin-inline: auto; grid-template-columns: 1fr; }\n@media (min-width: 700px) { .s230f .s230f-ship-grid { grid-template-columns: 1fr 1fr; } }\n.s230f-ship-card { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; padding: 28px 26px; transition: transform 0.4s var(--ease-spring); }\n.s230f-ship-card:hover { transform: translateY(-3px); }\n.s230f-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.s230f-ship-card p { font-size: 14px; color: var(--ink-2); line-height: 1.7; margin-bottom: 10px; }\n.s230f-ship-card p:last-child { margin-bottom: 0; }\n.s230f-ship-card strong { color: var(--ink); font-weight: 600; }\n.s230f-ship-coral { color: var(--coral-deep); font-weight: 700; }\n.s230f-ship-mint { color: var(--mint-deep); font-weight: 700; }\n.s230f-ship-amber { color: var(--amber-deep); font-weight: 700; }\n\n.s230f-faq { background: var(--paper); }\n.s230f-faq-head { text-align: center; margin-bottom: 40px; }\n.s230f-faq-list { max-width: 760px; margin-inline: auto; }\n.s230f-faq-item { padding-block: 24px; border-bottom: 1px solid var(--line); }\n.s230f-faq-item:last-child { border-bottom: none; }\n.s230f-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.s230f-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.s230f-faq-a { font-size: 14.5px; color: var(--ink-2); line-height: 1.7; padding-inline-start: 38px; }\n.s230f-faq-a strong { color: var(--ink); font-weight: 600; }\n\n.s230f-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: s230f-text-grad 18s ease infinite; }\n.s230f-cta-inner { position: relative; z-index: 2; max-inline-size: 720px; margin-inline: auto; }\n.s230f-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.s230f-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: s230f-text-grad 5s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }\n.s230f-cta p { font-size: clamp(15px, 1.7vw, 17px); color: oklch(88% 0.01 80); line-height: 1.7; margin-bottom: 30px; }\n.s230f-cta p strong { color: var(--paper); font-weight: 600; }\n.s230f-cta-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }\n.s230f-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.s230f-cta-pill:hover { background: color-mix(in oklch, var(--amber) 25%, transparent); border-color: color-mix(in oklch, var(--amber) 50%, transparent); }\n\n.s230f-footer { background: oklch(8% 0.04 270); color: oklch(82% 0.01 80); padding-block: 40px; text-align: center; position: relative; }\n.s230f-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: s230f-shimmer 6s linear infinite; }\n.s230f-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.s230f-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: s230f-text-grad 6s ease infinite; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 18px; }\n.s230f-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.s230f-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.s230f-footer-legal { font-size: 12px; color: oklch(80% 0.01 80); line-height: 1.7; max-inline-size: 780px; margin-inline: auto; }\n.s230f-footer-legal + .s230f-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=\"s230f-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=\"s230f\"\u003e\n\n  \u003cnav class=\"s230f-nav\"\u003e\n    \u003cdiv class=\"s230f-container s230f-nav-inner\"\u003e\n      \u003cdiv class=\"s230f-logo\"\u003eCam\u003cspan\u003eGuard\u003c\/span\u003e Australia\u003c\/div\u003e\n      \u003cspan class=\"s230f-nav-status\"\u003e\n        \u003cspan class=\"s230f-nav-dot\"\u003e\u003c\/span\u003e\n        SoloCam S230 · 2K · Solar\n      \u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/nav\u003e\n\n  \u003csection class=\"s230f-hero\"\u003e\n    \u003cdiv class=\"s230f-stage\"\u003e\n      \u003cdiv class=\"s230f-sky s230f-sky-dawn\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-sky s230f-sky-day\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-sky s230f-sky-dusk\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-sky s230f-sky-night\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-starfield\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-aurora-2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-aurora\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-sun\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-godrays\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-moon\"\u003e\n        \u003cdiv class=\"s230f-crater\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s230f-crater\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s230f-crater\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-flare s230f-flare-1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-flare s230f-flare-2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-flare s230f-flare-3\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-flare s230f-flare-4\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-flare s230f-flare-5\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-cloud s230f-c1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-cloud s230f-c2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-cloud s230f-c3\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-storm-clouds\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-storm-cloud s230f-sc1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-storm-cloud s230f-sc2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-storm-cloud s230f-sc3\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-storm-cloud s230f-sc4\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-storm-cloud s230f-sc5\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-storm-cloud s230f-sc6\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-storm-cloud s230f-sc7\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"s230f-rain\"\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 3%; --d: 0s; --s: 0.65s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 8%; --d: 0.32s; --s: 0.78s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 13%; --d: 0.55s; --s: 0.6s; --len: 24px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 17%; --d: 0.12s; --s: 0.82s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 22%; --d: 0.48s; --s: 0.7s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 27%; --d: 0.18s; --s: 0.74s; --len: 26px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 31%; --d: 0.62s; --s: 0.66s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 36%; --d: 0.05s; --s: 0.85s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 41%; --d: 0.42s; --s: 0.68s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 45%; --d: 0.25s; --s: 0.76s; --len: 24px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 49%; --d: 0.55s; --s: 0.62s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 53%; --d: 0.08s; --s: 0.8s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 58%; --d: 0.38s; --s: 0.72s; --len: 26px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 62%; --d: 0.22s; --s: 0.66s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 67%; --d: 0.5s; --s: 0.78s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 71%; --d: 0.15s; --s: 0.7s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 75%; --d: 0.45s; --s: 0.64s; --len: 24px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 80%; --d: 0.28s; --s: 0.82s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 84%; --d: 0.58s; --s: 0.68s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 88%; --d: 0.1s; --s: 0.76s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 93%; --d: 0.35s; --s: 0.72s; --len: 26px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 97%; --d: 0.52s; --s: 0.66s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 6%; --d: 0.4s; --s: 0.74s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 19%; --d: 0.3s; --s: 0.6s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 34%; --d: 0.6s; --s: 0.8s; --len: 16px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 51%; --d: 0.2s; --s: 0.7s; --len: 24px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 64%; --d: 0.55s; --s: 0.64s; --len: 18px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 77%; --d: 0.05s; --s: 0.76s; --len: 22px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 90%; --d: 0.45s; --s: 0.68s; --len: 20px;\"\u003e\u003c\/span\u003e\n        \u003cspan class=\"s230f-drop\" style=\"--x: 11%; --d: 0.6s; --s: 0.72s; --len: 24px;\"\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s230f-lightning\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-fog\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-bird\"\u003e𓅪\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-tree\"\u003e\n        \u003cdiv class=\"s230f-tree-canopy\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s230f-tree-trunk\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-wall\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-camera-scene\"\u003e\n        \u003cdiv class=\"s230f-spotlight\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s230f-spotlight-pool\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s230f-camera-3d\"\u003e\n          \u003cdiv class=\"s230f-cam-mount\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"s230f-cam-body\"\u003e\n            \u003cdiv class=\"s230f-cam-solar\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"s230f-cam-lens\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"s230f-cam-led\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-status solar\"\u003e\n        \u003cspan class=\"s230f-status-dot\"\u003e\u003c\/span\u003e\n        ☀️ Solar Charging\n      \u003c\/div\u003e\n      \u003cdiv class=\"s230f-status spot\"\u003e\n        \u003cspan class=\"s230f-status-dot\"\u003e\u003c\/span\u003e\n        💡 Spotlight On\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-grain\"\u003e\u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-hero-overlay\"\u003e\n        \u003cdiv class=\"s230f-hero-text\"\u003e\n          \u003cspan class=\"s230f-hero-eyebrow\"\u003eSoloCam S230 · eufyCam Solo S40 · New \/ Open Box\u003c\/span\u003e\n          \u003ch1\u003eStandalone.\u003cbr\u003e\u003cem\u003eSolar.\u003c\/em\u003e Sorted.\u003c\/h1\u003e\n          \u003cp class=\"s230f-hero-sub\"\u003eA 2K outdoor cam that runs on sunshine, watches in colour after dark with a \u003cstrong\u003e600-lumen spotlight\u003c\/strong\u003e, and never asks for a HomeBase or a subscription.\u003c\/p\u003e\n          \u003cdiv class=\"s230f-hero-pills\"\u003e\n            \u003cspan class=\"s230f-hero-pill amber\"\u003e☀️ Solar — Forever\u003c\/span\u003e\n            \u003cspan class=\"s230f-hero-pill coral\"\u003e📷 2K · 135°\u003c\/span\u003e\n            \u003cspan class=\"s230f-hero-pill magenta\"\u003e💡 600 lm\u003c\/span\u003e\n            \u003cspan class=\"s230f-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=\"s230f-strip\"\u003e\n    \u003cdiv class=\"s230f-strip-track\"\u003e\n      \u003cspan\u003e2K colour day \u0026amp; night\u003c\/span\u003e\n      \u003cspan\u003e600-lumen spotlight\u003c\/span\u003e\n      \u003cspan\u003eIntegrated solar · forever power\u003c\/span\u003e\n      \u003cspan\u003eIP67 weatherproof\u003c\/span\u003e\n      \u003cspan\u003eNo HomeBase required\u003c\/span\u003e\n      \u003cspan\u003eZero subscription · ever\u003c\/span\u003e\n      \u003cspan\u003eNew · Open Box · pristine\u003c\/span\u003e\n      \u003cspan\u003e2K colour day \u0026amp; night\u003c\/span\u003e\n      \u003cspan\u003e600-lumen spotlight\u003c\/span\u003e\n      \u003cspan\u003eIntegrated solar · forever power\u003c\/span\u003e\n      \u003cspan\u003eIP67 weatherproof\u003c\/span\u003e\n      \u003cspan\u003eNo HomeBase required\u003c\/span\u003e\n      \u003cspan\u003eZero subscription · ever\u003c\/span\u003e\n      \u003cspan\u003eNew · Open Box · pristine\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"s230f-section s230f-bigidea\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-bv-grid\"\u003e\n        \u003cdiv class=\"s230f-bigidea-text s230f-reveal\"\u003e\n          \u003cdiv class=\"s230f-eyebrow coral\"\u003eThe pitch\u003c\/div\u003e\n          \u003ch2 class=\"s230f-h2\"\u003eOne camera. The sun. \u003cem\u003eForever.\u003c\/em\u003e\n\u003c\/h2\u003e\n          \u003cp\u003eThe S230 sips around 150–200 mAh per day to do its job — recording, alerting, processing on-device AI, the lot. Its integrated solar panel pulls in roughly 600–800 mAh in good Aussie light. \u003cstrong\u003eTwo hours of direct sun and you're already in surplus.\u003c\/strong\u003e Reviewers report most installs sit comfortably in the 85–95% battery range continuously, even through a stretch of overcast days.\u003c\/p\u003e\n          \u003cp\u003eIt's the rare bit of tech that asks for nothing once you've put it up. No daily charging routine. No \"low battery\" alert at 6am. No optional subscription that gradually becomes mandatory. Mount it once, plug it into nothing, and let it get on with the job.\u003c\/p\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"s230f-bv-card s230f-reveal\" aria-label=\"Animated battery percentage demonstrating solar maintaining charge\"\u003e\n          \u003cdiv class=\"s230f-bv-sun\"\u003e☀️\u003c\/div\u003e\n          \u003cdiv class=\"s230f-bv-pulse\"\u003e\u003c\/div\u003e\n\n          \u003cdiv class=\"s230f-bv-stat\"\u003e\n            \u003cspan class=\"s230f-bv-num\"\u003e\u003c\/span\u003e\n            \u003cspan class=\"s230f-bv-stat-lbl\"\u003eBattery · solar-maintained over 180 days\u003c\/span\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"s230f-bv-bar\"\u003e\n            \u003cdiv class=\"s230f-bv-fill\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"s230f-bv-marks\"\u003e\n            \u003cspan\u003eDay 1\u003c\/span\u003e\n            \u003cspan\u003e30\u003c\/span\u003e\n            \u003cspan\u003e60\u003c\/span\u003e\n            \u003cspan\u003e90\u003c\/span\u003e\n            \u003cspan\u003e120\u003c\/span\u003e\n            \u003cspan\u003e150\u003c\/span\u003e\n            \u003cspan\u003eDay 180\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=\"s230f-section s230f-openbox\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-ob-card s230f-reveal\"\u003e\n        \u003cdiv class=\"s230f-eyebrow indigo\"\u003eAbout the condition\u003c\/div\u003e\n        \u003ch2 class=\"s230f-h2\"\u003eNew, Open Box. \u003cem\u003eHonestly.\u003c\/em\u003e\n\u003c\/h2\u003e\n        \u003cp\u003eThe camera itself is \u003cstrong\u003eunused, never powered on, never paired\u003c\/strong\u003e — in pristine factory condition. The only thing that's not \"brand new\" is the original retail packaging, which has been opened at some point along the way (retailer returns, shelf-pulled stock, kit-splits, that sort of thing).\u003c\/p\u003e\n        \u003cp\u003eUnder Australian Consumer Law, once a retail box has been opened — even if the product inside has never been touched — it can't legally be sold as \"brand new\". So instead of charging the brand-new price, we charge less and pass that on to you. Same camera, same accessories, same factory condition, same 12-month CamGuard warranty. The only thing missing is the original outer carton.\u003c\/p\u003e\n        \u003cdiv class=\"s230f-ob-stamps\"\u003e\n          \u003cdiv class=\"s230f-ob-stamp\"\u003e\n            \u003cspan class=\"s230f-ob-stamp-icon\"\u003e📷\u003c\/span\u003e\n            \u003cdiv class=\"s230f-ob-stamp-h\"\u003eUnused\u003c\/div\u003e\n            \u003cdiv class=\"s230f-ob-stamp-d\"\u003eNever powered on\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"s230f-ob-stamp\"\u003e\n            \u003cspan class=\"s230f-ob-stamp-icon\"\u003e✓\u003c\/span\u003e\n            \u003cdiv class=\"s230f-ob-stamp-h\"\u003eAll accessories\u003c\/div\u003e\n            \u003cdiv class=\"s230f-ob-stamp-d\"\u003eNothing missing\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"s230f-ob-stamp\"\u003e\n            \u003cspan class=\"s230f-ob-stamp-icon\"\u003e🛡\u003c\/span\u003e\n            \u003cdiv class=\"s230f-ob-stamp-h\"\u003eSame warranty\u003c\/div\u003e\n            \u003cdiv class=\"s230f-ob-stamp-d\"\u003e12 months · CamGuard\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"s230f-ob-stamp\"\u003e\n            \u003cspan class=\"s230f-ob-stamp-icon\"\u003e💸\u003c\/span\u003e\n            \u003cdiv class=\"s230f-ob-stamp-h\"\u003eBetter price\u003c\/div\u003e\n            \u003cdiv class=\"s230f-ob-stamp-d\"\u003eNo box, no markup\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=\"s230f-section s230f-features\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-feat-head s230f-reveal\"\u003e\n        \u003cdiv class=\"s230f-eyebrow amber\"\u003eSix things it does properly\u003c\/div\u003e\n        \u003ch2 class=\"s230f-h2\"\u003eSharp by day. \u003cem\u003eLit up at night.\u003c\/em\u003e\n\u003c\/h2\u003e\n        \u003cp class=\"s230f-deck\"\u003eSix reasons the SoloCam S230 is the outdoor cam to actually mount and stop thinking about.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-feat-grid s230f-stagger\"\u003e\n        \u003carticle class=\"s230f-feat coral\"\u003e\n          \u003cdiv class=\"s230f-feat-icon\"\u003eHD\u003c\/div\u003e\n          \u003cdiv class=\"s230f-feat-eyebrow\"\u003eResolution\u003c\/div\u003e\n          \u003ch3\u003e2K with an F1.6 lens.\u003c\/h3\u003e\n          \u003cp\u003eBehind the 1\/2.8\" CMOS sensor sits a wide-open F1.6 aperture — wide-open in lens terms means more light reaches the chip, which means cleaner image quality even before the spotlight kicks in. Reviewers consistently note it's sharp enough to read package labels from across the driveway. Useful for delivery-driver disputes (\"I didn't see a label\"). Also useful for identifying \u003cem\u003ewhich\u003c\/em\u003e neighbour keeps moving your bins.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s230f-feat amber\"\u003e\n          \u003cdiv class=\"s230f-feat-icon\"\u003e☀\u003c\/div\u003e\n          \u003cdiv class=\"s230f-feat-eyebrow\"\u003eSolar power\u003c\/div\u003e\n          \u003ch3\u003eIntegrated panel. Forever fuel.\u003c\/h3\u003e\n          \u003cp\u003eThe solar panel sits right on top of the camera body — not a second piece to mount on a different bracket, not a cable to weatherproof, not a separate accessory to keep track of. Just one integrated unit. About 2 hours of daily sun keeps it indefinitely charged. Most of Australia averages well above that almost everywhere it's sunny enough to bother having a camera — the maths does the heavy lifting. The opposite of every \"smart home\" product launched since 2018 that needs charging every Tuesday.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s230f-feat magenta\"\u003e\n          \u003cdiv class=\"s230f-feat-icon\"\u003e💡\u003c\/div\u003e\n          \u003cdiv class=\"s230f-feat-eyebrow\"\u003eAfter dark\u003c\/div\u003e\n          \u003ch3\u003e600-lumen colour vision.\u003c\/h3\u003e\n          \u003cp\u003eMost outdoor cams give you grainy black-and-white infrared — useful for identifying the rough \u003cem\u003eshape\u003c\/em\u003e of a person, but not what they're wearing or whether you actually know them. The S230 fires a 600-lumen spotlight on motion and pulls full-colour 2K out of total darkness. For reference: 600 lumens is roughly the output of a decent bedside lamp pointed at your driveway. Adjustable brightness, so the bloke next door doesn't draft a formal complaint. \u003cem\u003e(If you live in a unit, do a quick chat with the neighbours first. It's polite. They might also want one.)\u003c\/em\u003e\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s230f-feat teal\"\u003e\n          \u003cdiv class=\"s230f-feat-icon\"\u003e∅\u003c\/div\u003e\n          \u003cdiv class=\"s230f-feat-eyebrow\"\u003eNo HomeBase needed\u003c\/div\u003e\n          \u003ch3\u003eGenuinely standalone.\u003c\/h3\u003e\n          \u003cp\u003e\"Solo\" means exactly that — not marketing language for \"needs an additional thing to function.\" The camera connects direct to your 2.4 GHz Wi-Fi and stores motion-triggered footage on its own 8 GB internal memory. No hub. No monthly fees. No cloud account holding your video hostage and asking for credit-card details on the 13th of every month. No \"free trial\" that quietly becomes mandatory after 30 days. No \"starter kit\" missing the bit you actually need. Just the camera. Refreshing, isn't it?\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s230f-feat indigo\"\u003e\n          \u003cdiv class=\"s230f-feat-icon\"\u003eAI\u003c\/div\u003e\n          \u003cdiv class=\"s230f-feat-eyebrow\"\u003eSmart detection\u003c\/div\u003e\n          \u003ch3\u003eTells people from possums.\u003c\/h3\u003e\n          \u003cp\u003eHuman detection runs on the camera itself — not in eufy's cloud. Faster notifications (about a second from detection to phone ping), more private (footage doesn't leave the device unless you stream it on purpose), and the model self-trains over normal use to around 99% accuracy. It knows the difference between a person, a car driving past, a swaying tree branch, and the local possum doing its 2am rounds — which is, frankly, more than some doorbell cams can claim. You get pinged when a human walks through. Not when a moth crosses the lens.\u003c\/p\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"s230f-feat mint\"\u003e\n          \u003cdiv class=\"s230f-feat-icon\"\u003e🌧\u003c\/div\u003e\n          \u003cdiv class=\"s230f-feat-eyebrow\"\u003eBuilt to cop it\u003c\/div\u003e\n          \u003ch3\u003eIP67 weatherproof.\u003c\/h3\u003e\n          \u003cp\u003eEngineered for a -20 °C to 60 °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, so the answer to \"will it survive my dodgy fascia where the gutter overflows every March\" is yes. Two-way audio is built in, too — for the times you want to politely tell an intruder where they can go. Or, more politely, where to leave the parcel.\u003c\/p\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s230f-section s230f-afterdark\"\u003e\n    \u003cdiv class=\"s230f-container s230f-afterdark-inner\"\u003e\n      \u003cdiv class=\"s230f-reveal\"\u003e\n        \u003cdiv class=\"s230f-eyebrow\"\u003eAfter dark\u003c\/div\u003e\n        \u003ch2\u003e600 lumens of \u003cem\u003e\"hello there\".\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 S230 takes a different approach. When motion is detected at night, the built-in 600-lumen spotlight kicks on and the camera records in \u003cstrong\u003efull-colour 2K\u003c\/strong\u003e. Properly clear, identifiable footage. Bright enough to make out a face. Bright enough to make out a hoodie. Dim-able, so installations near bedroom windows don't turn into a runway.\u003c\/p\u003e\n        \u003cp\u003ePrefer stealth monitoring? IR-only mode is still there — invisible infrared, clear up to about 8 metres. No light, no warning, no indicator that the camera even sees them. You pick the mode in the app. Or set it differently for day vs night. Or different per camera if you've got more than one.\u003c\/p\u003e\n        \u003cdiv class=\"s230f-afterdark-pills\"\u003e\n          \u003cspan class=\"s230f-afterdark-pill\"\u003e600 lm spotlight\u003c\/span\u003e\n          \u003cspan class=\"s230f-afterdark-pill\"\u003eFull-colour at night\u003c\/span\u003e\n          \u003cspan class=\"s230f-afterdark-pill\"\u003eUp to 8 m IR\u003c\/span\u003e\n          \u003cspan class=\"s230f-afterdark-pill\"\u003eAdjustable brightness\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"s230f-spot-vis s230f-reveal\"\u003e\n        \u003cdiv class=\"s230f-spot-hud\"\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s230f-spot-rec\"\u003eREC\u003c\/div\u003e\n\n        \u003cdiv class=\"s230f-spot-cam-wrap\"\u003e\n          \u003cdiv class=\"s230f-spot-cam-mount\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"s230f-spot-cam-body\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-spot-beam\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s230f-spot-pool\"\u003e\u003c\/div\u003e\n\n        \u003cdiv class=\"s230f-spot-figure\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"s230f-spot-detect\"\u003e\n          \u003cdiv class=\"s230f-spot-detect-inner\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-spot-alert\"\u003eMotion Detected · Front Yard\u003c\/div\u003e\n\n        \u003cdiv class=\"s230f-spot-label\"\u003eMotion-triggered · 600 lm\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s230f-section s230f-zero\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-zero-grid\"\u003e\n        \u003cdiv class=\"s230f-zero-text s230f-reveal\"\u003e\n          \u003cdiv class=\"s230f-eyebrow mint\"\u003eNo subscription\u003c\/div\u003e\n          \u003ch2 class=\"s230f-h2 cool\"\u003eYour footage. \u003cem\u003eYour house.\u003c\/em\u003e Not eufy's.\u003c\/h2\u003e\n          \u003cp\u003eAll recordings live on the camera's own 8 GB of internal storage — that's roughly \u003cstrong\u003e2–3 months\u003c\/strong\u003e of motion events in a typical residential setup. No cloud account required. No monthly fee. No paywall quietly turning on after the first 12 months. No \"oh sorry, your free tier just expired\" email three years in. Just local storage and an app, both included with the price you paid.\u003c\/p\u003e\n          \u003cp\u003eeufy do offer optional cloud backup if you want extra redundancy. We don't push it. We don't really even mention 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. The whole \"subscription required for the most basic features\" industry pattern can sit this one out, thanks.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-zero-card s230f-reveal\"\u003e\n          \u003cdiv class=\"s230f-zero-num\"\u003e$0\u003c\/div\u003e\n          \u003cdiv class=\"s230f-zero-lbl\"\u003eper month · forever\u003c\/div\u003e\n          \u003cdiv class=\"s230f-zero-sub\"\u003e8 GB local storage · ~99% AI accuracy · 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=\"s230f-section s230f-specs-section\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-specs-head s230f-reveal\"\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"s230f-eyebrow muted\"\u003eSpecifications\u003c\/div\u003e\n          \u003ch2 class=\"s230f-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: T8124CW1\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003ctable class=\"s230f-spec-table s230f-reveal\"\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n\u003ctd\u003eModel\u003c\/td\u003e\n\u003ctd\u003eeufy SoloCam S230 \/ eufyCam Solo S40 (T8124CW1)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eCondition\u003c\/td\u003e\n\u003ctd\u003eNew \/ Open Box — unused, pristine, never powered on\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eResolution\u003c\/td\u003e\n\u003ctd\u003e2K (2304 × 1296)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eImage Sensor\u003c\/td\u003e\n\u003ctd\u003e1\/2.8\" CMOS · F1.6 aperture\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eField of View\u003c\/td\u003e\n\u003ctd\u003e135° diagonal\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eNight Vision\u003c\/td\u003e\n\u003ctd\u003eIR up to 8 m + 600-lumen spotlight for full-colour\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eSpotlight\u003c\/td\u003e\n\u003ctd\u003e600 lumens · motion-activated · adjustable\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eAI Detection\u003c\/td\u003e\n\u003ctd\u003eOn-device human detection (~99% accuracy)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eMotion Range\u003c\/td\u003e\n\u003ctd\u003e~9 m day · ~7.5 m night\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eSolar Panel\u003c\/td\u003e\n\u003ctd\u003eIntegrated · ~2 hrs daily sun for indefinite use\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eBattery\u003c\/td\u003e\n\u003ctd\u003eBuilt-in rechargeable lithium-ion · USB-C top-up\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eStorage\u003c\/td\u003e\n\u003ctd\u003e8 GB built-in eMMC · ~2–3 months of events\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eAudio\u003c\/td\u003e\n\u003ctd\u003eTwo-way · range up to 8 m\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eWi-Fi\u003c\/td\u003e\n\u003ctd\u003e2.4 GHz only · direct (no HomeBase required)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eSmart Home\u003c\/td\u003e\n\u003ctd\u003eAmazon Alexa · Google Assistant (no HomeKit)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eWeather Rating\u003c\/td\u003e\n\u003ctd\u003eIP67 · operating -20 °C to 60 °C\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eMounting\u003c\/td\u003e\n\u003ctd\u003e2–3 m \/ 7–10 ft recommended height\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eDimensions\u003c\/td\u003e\n\u003ctd\u003e85 × 114 × 50 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003ctd\u003eWeight\u003c\/td\u003e\n\u003ctd\u003e~460 g\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=\"s230f-section s230f-inbox\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-inbox-head s230f-reveal\"\u003e\n        \u003cdiv class=\"s230f-eyebrow magenta\"\u003eIn the pack\u003c\/div\u003e\n        \u003ch2 class=\"s230f-h2\"\u003ePristine product. \u003cem\u003eOpened packaging.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s230f-inbox-grid s230f-stagger\"\u003e\n        \u003cdiv class=\"s230f-inbox-item\"\u003e\n          \u003cdiv class=\"s230f-inbox-num\"\u003e01\u003c\/div\u003e\n          \u003cdiv class=\"s230f-inbox-name\"\u003eSoloCam S230\u003c\/div\u003e\n          \u003cdiv class=\"s230f-inbox-note\"\u003ePre-charged · ready to mount\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-inbox-item\"\u003e\n          \u003cdiv class=\"s230f-inbox-num\"\u003e02\u003c\/div\u003e\n          \u003cdiv class=\"s230f-inbox-name\"\u003eUSB-C cable\u003c\/div\u003e\n          \u003cdiv class=\"s230f-inbox-note\"\u003eFor initial \/ top-up charging\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-inbox-item\"\u003e\n          \u003cdiv class=\"s230f-inbox-num\"\u003e03\u003c\/div\u003e\n          \u003cdiv class=\"s230f-inbox-name\"\u003eWall mount\u003c\/div\u003e\n          \u003cdiv class=\"s230f-inbox-note\"\u003eAdjustable swivel bracket\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-inbox-item\"\u003e\n          \u003cdiv class=\"s230f-inbox-num\"\u003e04\u003c\/div\u003e\n          \u003cdiv class=\"s230f-inbox-name\"\u003eScrew pack\u003c\/div\u003e\n          \u003cdiv class=\"s230f-inbox-note\"\u003eAnchors + screws included\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-inbox-item\"\u003e\n          \u003cdiv class=\"s230f-inbox-num\"\u003e05\u003c\/div\u003e\n          \u003cdiv class=\"s230f-inbox-name\"\u003eQuick start guide\u003c\/div\u003e\n          \u003cdiv class=\"s230f-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=\"s230f-section s230f-trust\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-trust-head s230f-reveal\"\u003e\n        \u003cdiv class=\"s230f-eyebrow teal\"\u003eWhy CamGuard\u003c\/div\u003e\n        \u003ch2 class=\"s230f-h2 cool\"\u003eSmall Aussie team. \u003cem\u003eReal support.\u003c\/em\u003e\n\u003c\/h2\u003e\n        \u003cp class=\"s230f-deck\" style=\"margin-inline: auto; text-align: left;\"\u003eWe're a small crew based in Townsville, QLD. We source genuine eufy stock, ship it fast, and answer every message ourselves.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s230f-trust-grid s230f-stagger\"\u003e\n        \u003cdiv class=\"s230f-trust-card coral\"\u003e\n          \u003cdiv class=\"s230f-trust-num\"\u003e01 · Genuine\u003c\/div\u003e\n          \u003ch3\u003e100% authentic stock\u003c\/h3\u003e\n          \u003cp\u003eThe camera itself is unused, never powered on, in pristine factory condition. The original retail packaging has been opened — which is what makes this \"open box\" rather than \"brand new\" — but the product inside is untouched. Every unit gets checked before it leaves us.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-trust-card amber\"\u003e\n          \u003cdiv class=\"s230f-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 model for a typical Aussie front yard,\" we've genuinely tested that claim.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-trust-card teal\"\u003e\n          \u003cdiv class=\"s230f-trust-num\"\u003e03 · Fast\u003c\/div\u003e\n          \u003ch3\u003eDispatched in 1 business day\u003c\/h3\u003e\n          \u003cp\u003eAustralia Post Express included with every order. Not \"free shipping over $X.\" Not \"standard ground for 7–10 business days.\" Just 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=\"s230f-trust-card mint\"\u003e\n          \u003cdiv class=\"s230f-trust-num\"\u003e04 · Stacked warranty\u003c\/div\u003e\n          \u003ch3\u003e12-month CamGuard cover\u003c\/h3\u003e\n          \u003cp\u003eSame 12-month warranty as our brand-new stock — identical cover. Plus 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=\"s230f-section s230f-ship\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-ship-head s230f-reveal\"\u003e\n        \u003cdiv class=\"s230f-eyebrow indigo\"\u003eLogistics\u003c\/div\u003e\n        \u003ch2 class=\"s230f-h2\"\u003eFast dispatch. \u003cem\u003eHonest cover.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s230f-ship-grid s230f-stagger\"\u003e\n        \u003cdiv class=\"s230f-ship-card\"\u003e\n          \u003ch4\u003e🚚 Australia Post Express included\u003c\/h4\u003e\n          \u003cp\u003e\u003cspan class=\"s230f-ship-mint\"\u003eAustralia Post Express included\u003c\/span\u003e in the price — not \"free shipping over $X\" with a threshold, not \"standard ground\" with a 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=\"s230f-ship-card\"\u003e\n          \u003ch4\u003e🛡️ Stacked warranty\u003c\/h4\u003e\n          \u003cp\u003e\u003cspan class=\"s230f-ship-coral\"\u003e12-month CamGuard warranty\u003c\/span\u003e — same cover as our brand-new stock, with express replacement if needed. Often quicker than the manufacturer's own returns process.\u003c\/p\u003e\n          \u003cp\u003e\u003cspan class=\"s230f-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=\"s230f-section s230f-faq\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-faq-head s230f-reveal\"\u003e\n        \u003cdiv class=\"s230f-eyebrow amber\"\u003eQuestions, briefly\u003c\/div\u003e\n        \u003ch2 class=\"s230f-h2\"\u003eSix things \u003cem\u003eworth knowing.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"s230f-faq-list\"\u003e\n        \u003cdiv class=\"s230f-faq-item s230f-reveal\"\u003e\n          \u003cdiv class=\"s230f-faq-q\"\u003e\n\u003cspan class=\"s230f-faq-q-tag\"\u003eQ\u003c\/span\u003e What does \"New \/ Open Box\" mean exactly?\u003c\/div\u003e\n          \u003cdiv class=\"s230f-faq-a\"\u003eThe camera itself is \u003cstrong\u003eunused, never powered on, never paired\u003c\/strong\u003e — in pristine factory condition. The only thing not \"brand new\" is the original retail packaging, which has been opened (retailer returns, shelf-pulls, kit-splits, that sort of thing). Under Australian Consumer Law, once a retail box has been opened — even if the product inside has never been touched — it can't legally be sold as \"brand new\". So we sell it for less. You get the same camera, same accessories, same 12-month warranty. Just a better price.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-faq-item s230f-reveal\"\u003e\n          \u003cdiv class=\"s230f-faq-q\"\u003e\n\u003cspan class=\"s230f-faq-q-tag\"\u003eQ\u003c\/span\u003e Does it really work without a HomeBase?\u003c\/div\u003e\n          \u003cdiv class=\"s230f-faq-a\"\u003eYes. The \"Solo\" in the name is literal — not marketing fluff. Connects direct to your 2.4 GHz Wi-Fi, stores motion-triggered footage on its own 8 GB of internal memory. Setup is the eufy Security app, your Wi-Fi password, and about five minutes. Faster than rebooting your router.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-faq-item s230f-reveal\"\u003e\n          \u003cdiv class=\"s230f-faq-q\"\u003e\n\u003cspan class=\"s230f-faq-q-tag\"\u003eQ\u003c\/span\u003e Is there a monthly fee?\u003c\/div\u003e\n          \u003cdiv class=\"s230f-faq-a\"\u003e\n\u003cstrong\u003eNo. Never.\u003c\/strong\u003e Recording, AI detection, alerts, live view, two-way audio — all included. eufy do offer optional cloud storage if you want extra redundancy, but it's not required. Imagine that — buying a thing and then just \u003cem\u003eusing\u003c\/em\u003e it. Wild concept these days.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-faq-item s230f-reveal\"\u003e\n          \u003cdiv class=\"s230f-faq-q\"\u003e\n\u003cspan class=\"s230f-faq-q-tag\"\u003eQ\u003c\/span\u003e Apple HomeKit?\u003c\/div\u003e\n          \u003cdiv class=\"s230f-faq-a\"\u003eHonest answer: no. eufy's HomeKit support is uneven across their range and the S230 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) or the eufyCam S3 Pro range instead — we sell those too.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-faq-item s230f-reveal\"\u003e\n          \u003cdiv class=\"s230f-faq-q\"\u003e\n\u003cspan class=\"s230f-faq-q-tag\"\u003eQ\u003c\/span\u003e Doesn't the spotlight chew through battery?\u003c\/div\u003e\n          \u003cdiv class=\"s230f-faq-a\"\u003eIt only fires on motion, only for the few seconds an event lasts. Combined with the integrated solar trickle, real-world battery sits at 85–95% for most installs. The only way you'll genuinely drain it is mounting next to a footpath in a 24-hour pedestrian thoroughfare — that's an installation decision, not a battery problem.\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"s230f-faq-item s230f-reveal\"\u003e\n          \u003cdiv class=\"s230f-faq-q\"\u003e\n\u003cspan class=\"s230f-faq-q-tag\"\u003eQ\u003c\/span\u003e What if my spot has heaps of motion events?\u003c\/div\u003e\n          \u003cdiv class=\"s230f-faq-a\"\u003e8 GB holds roughly 2–3 months of events in a typical residential zone. Once full, the oldest rolls over. Very high-traffic locations can fill 8 GB in around a month — but for most homes it's plenty. If you're already running a small surveillance state out the front, you might want a HomeBase-paired setup with expandable storage instead.\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"s230f-cta\"\u003e\n    \u003cdiv class=\"s230f-container s230f-cta-inner\"\u003e\n      \u003cdiv class=\"s230f-eyebrow\" style=\"color: var(--amber);\"\u003eFinal pitch\u003c\/div\u003e\n      \u003ch2\u003eMount it. \u003cem\u003eForget it.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003cp\u003eGenuine eufy SoloCam S230 — also marketed in Australia as the eufyCam Solo S40. \u003cstrong\u003eNew \/ Open Box · pristine and unused.\u003c\/strong\u003e About two hours of daily solar to stay topped up, 2K colour footage day \u003cem\u003eand\u003c\/em\u003e night, 600-lumen spotlight on motion, IP67 weatherproof, on-device AI, zero subscription, zero HomeBase, zero monthly drama. The outdoor cam to actually mount and stop thinking about.\u003c\/p\u003e\n      \u003cdiv class=\"s230f-cta-pills\"\u003e\n        \u003cspan class=\"s230f-cta-pill\"\u003e📦 New \/ Open Box\u003c\/span\u003e\n        \u003cspan class=\"s230f-cta-pill\"\u003e📷 2K · 135°\u003c\/span\u003e\n        \u003cspan class=\"s230f-cta-pill\"\u003e💡 600 lm\u003c\/span\u003e\n        \u003cspan class=\"s230f-cta-pill\"\u003e☀️ Solar · forever\u003c\/span\u003e\n        \u003cspan class=\"s230f-cta-pill\"\u003e∅ No HomeBase\u003c\/span\u003e\n        \u003cspan class=\"s230f-cta-pill\"\u003e$0\/mo · ever\u003c\/span\u003e\n        \u003cspan class=\"s230f-cta-pill\"\u003e🌧 IP67\u003c\/span\u003e\n        \u003cspan class=\"s230f-cta-pill\"\u003e🛡 12-Month Warranty\u003c\/span\u003e\n        \u003cspan class=\"s230f-cta-pill\"\u003e🚚 Australia Post Express Included\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cfooter class=\"s230f-footer\"\u003e\n    \u003cdiv class=\"s230f-container\"\u003e\n      \u003cdiv class=\"s230f-footer-brand\"\u003eCamGuard Australia\u003c\/div\u003e\n      \u003cdiv class=\"s230f-footer-tag\"\u003eSolo. Solar. 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=\"s230f-footer-divider\"\u003e\u003c\/div\u003e\n      \u003cp class=\"s230f-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. The eufy SoloCam S230 is also marketed in Australia as the \"eufyCam Solo S40\" — both names refer to the same product (SKU T8124CW1).\u003c\/p\u003e\n      \u003cp class=\"s230f-footer-legal\"\u003e\"New \/ Open Box\" indicates the product itself is unused, never powered on, never paired, and in pristine factory condition — but the original retail packaging has been opened (typically from retailer returns, shelf-pull stock, kit-splits, or similar supply-chain scenarios). All original accessories and documentation are included. Under Australian Consumer Law, products with opened original packaging cannot be classified as \"brand new\", even when the product inside is unused. The eufy SoloCam S230 is a standalone camera and does not require a eufy HomeBase to operate. Solar charging performance varies by mounting position, season and direct-sunlight exposure. Battery life, motion-detection range, night-vision distance and spotlight brightness are approximate and vary with environmental conditions and configuration. The eufy SoloCam S230 connects to 2.4 GHz Wi-Fi only and is not compatible with Apple HomeKit. 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":44056702812203,"sku":null,"price":198.0,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0666\/0086\/1739\/files\/S230SoloCamS40.webp?v=1778520326","url":"https:\/\/www.camguardaustralia.com.au\/products\/eufy-security-solocam-s230-s40-open-box","provider":"CamGuard Australia","version":"1.0","type":"link"}