{"product_id":"golens-royal-guard-smart-door-lock-with-camera-wifi-enabled-fingerprint-password-rfid-card-key-app-unlock-temporary-password-otp-suitable-for-wooden-steel-doors-30-100mm","title":"Golens Royal Guard Smart Door Lock with Camera | WiFi Enabled | Fingerprint, Password, RFID Card, Key \u0026 App Unlock | Temporary Password (OTP) | Suitable for Wooden \u0026 Steel Doors (30–100mm)","description":"\u003cbody\u003e\n\n\n  \u003cmeta charset=\"utf-8\"\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1\"\u003e\n  \u003ctitle\u003eGolens Royal Guard — Smart Door Lock (Royal Guard)\u003c\/title\u003e\n  \u003cmeta name=\"description\" content=\"Golens Royal Guard Smart Door Lock with Camera — Wi‑Fi enabled multi-authentication lock with fingerprint, OTP, RFID, app control and more. World-class product page demo.\"\u003e\n  \u003c!-- Google Font --\u003e\n  \u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;600;700;800\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n  \u003cstyle\u003e\n    :root{\n      --bg: #ffffff;\n      --card: #ffffff;\n      --accent: #0b5fff;       \/* primary accent (blue) *\/\n      --muted: #6b7280;        \/* muted text *\/\n      --text: #0f172a;         \/* near-black for accessibility on white *\/\n      --glass: rgba(15,23,42,0.04);\n      --glass-2: rgba(11,95,255,0.06);\n      --shadow: 0 10px 30px rgba(2,6,23,0.06);\n      --radius: 14px;\n    }\n    \/* Base *\/\n    html,body{height:100%}\n    body{\n      margin:0;\n      font-family: \"Inter\",system-ui,-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial;\n      background:var(--bg);\n      color:var(--text);\n      -webkit-font-smoothing:antialiased;\n      -moz-osx-font-smoothing:grayscale;\n      line-height:1.45;\n      -webkit-tap-highlight-color: transparent;\n    }\n    a{color:var(--accent); text-decoration:none}\n    .container{max-width:1200px;margin:48px auto;padding:0 24px}\n    header{\n      display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;\n    }\n    .brand{\n      display:flex;gap:14px;align-items:center;\n    }\n    .logo{\n      width:56px;height:56px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#1fb6ff);\n      display:flex;align-items:center;justify-content:center;color:white;font-weight:800;box-shadow:var(--shadow);\n      transform:translateZ(0);\n    }\n    .brand h1{font-size:18px;margin:0}\n    nav a{margin-left:18px;color:var(--muted);font-weight:600}\n    \/* Hero *\/\n    .hero{\n      display:grid;grid-template-columns:1fr 460px;gap:40px;align-items:center;margin-bottom:44px;\n    }\n    .kicker{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--glass-2);color:var(--accent);font-weight:700;margin-bottom:12px;font-size:13px}\n    h2{font-size:34px;margin:0 0 12px 0;letter-spacing:-0.4px}\n    p.lead{margin:0 0 20px 0;color:var(--muted);font-size:15px}\n    .cta-row{display:flex;gap:12px;align-items:center}\n    .btn{\n      display:inline-flex;align-items:center;gap:10px;border:0;padding:12px 18px;border-radius:10px;font-weight:700;cursor:pointer;\n      box-shadow:0 6px 20px rgba(11,95,255,0.12), inset 0 -1px 0 rgba(255,255,255,0.04);\n      background:linear-gradient(180deg,var(--accent),#0a4cd8);color:white;\n      transition:transform .18s cubic-bezier(.2,.9,.3,1), box-shadow .18s;\n    }\n    .btn.secondary{\n      background:transparent;color:var(--text);box-shadow:none;border:1px solid rgba(15,23,42,0.06);font-weight:600;\n    }\n    .btn:active{transform:translateY(1px)}\n    \/* Specs list *\/\n    .specs{\n      margin-top:18px;display:flex;gap:14px;flex-wrap:wrap;\n    }\n    .spec{background:var(--glass);padding:10px 12px;border-radius:10px;font-weight:600;color:var(--muted);font-size:13px}\n    \/* Product visual column *\/\n    .visual-wrap{\n      perspective:1400px;\n      display:flex;align-items:center;justify-content:center;\n    }\n    .product-card{\n      width:420px;height:380px;border-radius:18px;background:linear-gradient(180deg,#ffffff, #fbfdff);box-shadow:var(--shadow);\n      display:grid;grid-template-columns:1fr;align-items:center;justify-items:center;padding:22px;position:relative;\n      transform-style:preserve-3d;transition:transform .18s ease-out;\n    }\n    \/* 3D tilt interaction *\/\n    .product-card.tilt{transition:transform .12s ease, box-shadow .12s;}\n    .product-art{\n      width:240px;height:320px;border-radius:12px;background:\n      linear-gradient(180deg,rgba(2,6,23,0.03),rgba(11,95,255,0.02));\n      display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;\n      transform:translateZ(40px);\n    }\n    \/* Minimal product mockup (SVG + camera placeholder) *\/\n    .lock-mock{\n      width:180px;height:300px;background:linear-gradient(180deg,#0b1220 0%, #0f1a2a 45%, #102634 100%);\n      border-radius:12px;padding:12px;color:white;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;\n      box-shadow:0 6px 30px rgba(2,6,23,0.35), inset 0 1px 0 rgba(255,255,255,0.03);\n      position:relative;\n    }\n    .camera{\n      width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 36% 28%, #2ecc71, #067d21 20%, #00140f 60%);\n      display:flex;align-items:center;justify-content:center;margin-top:12px;border:3px solid rgba(255,255,255,0.06);\n      box-shadow:0 6px 18px rgba(2,6,23,0.5);\n      animation:camera-pulse 2.6s infinite;\n    }\n    @keyframes camera-pulse{\n      0%{transform:scale(1)}\n      50%{transform:scale(1.06)}\n      100%{transform:scale(1)}\n    }\n    .fingerprint{\n      width:84px;height:84px;border-radius:50%;margin-top:18px;background:linear-gradient(180deg,#0b5fff, #6fb0ff);\n      display:grid;place-items:center;color:white;font-weight:800;box-shadow:0 8px 30px rgba(11,95,255,0.14);\n      position:relative;overflow:hidden;\n    }\n    \/* fingerprint scanning lines *\/\n    .fingerprint::after{\n      content:\"\";position:absolute;left:0;top:0;width:100%;height:100%;\n      background:linear-gradient(180deg,rgba(255,255,255,0.06) 0, rgba(255,255,255,0.12) 50%, rgba(255,255,255,0.06) 100%);\n      transform:translateY(-120%);\n      animation:scan 2s linear infinite;\n      mix-blend-mode:overlay;\n    }\n    @keyframes scan{0%{transform:translateY(-120%)}100%{transform:translateY(120%)}}\n    \/* Info badge *\/\n    .badge{\n      position:absolute;right:18px;top:18px;background:linear-gradient(90deg,#0b5fff,#1fb6ff);color:white;padding:8px 12px;border-radius:999px;font-weight:700;font-size:13px;box-shadow:0 8px 30px rgba(11,95,255,0.12)\n    }\n    \/* Features \u0026 list *\/\n    .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:28px}\n    .card{\n      background:var(--card);border-radius:12px;padding:18px;box-shadow:var(--shadow);border:1px solid rgba(2,6,23,0.04);\n    }\n    h3{margin:0 0 12px 0;font-size:18px}\n    ul.features{list-style:none;padding:0;margin:0;display:grid;gap:10px}\n    li.feature{display:flex;gap:12px;align-items:flex-start;color:var(--muted)}\n    .feature svg{flex:0 0 36px;height:36px;border-radius:8px;background:var(--glass);padding:6px}\n    .spec-table{width:100%;border-collapse:collapse}\n    .spec-table td{padding:8px 6px;border-bottom:1px dashed rgba(2,6,23,0.04);vertical-align:top;color:var(--muted);font-size:14px}\n    .spec-table tr td:first-child{color:var(--text);font-weight:700;width:45%}\n    \/* Included components *\/\n    .components li{margin-bottom:8px}\n    \/* Animations on scroll (simple fade-up) *\/\n    .reveal{opacity:0;transform:translateY(12px);transition:opacity .6s ease, transform .6s ease}\n    .reveal.visible{opacity:1;transform:none}\n    \/* Gallery modal *\/\n    .thumbs{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}\n    .thumb{width:64px;height:64px;border-radius:8px;overflow:hidden;border:1px solid rgba(2,6,23,0.04);cursor:pointer;background:#f8fafc;display:grid;place-items:center}\n    .modal{position:fixed;inset:0;background:rgba(2,6,23,0.6);display:grid;place-items:center;padding:28px;z-index:999;opacity:0;pointer-events:none;transition:opacity .18s}\n    .modal.open{opacity:1;pointer-events:auto}\n    .modal .frame{background:white;padding:18px;border-radius:12px;max-width:920px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 30px 80px rgba(2,6,23,0.5)}\n    .modal .close{position:absolute;right:18px;top:18px;background:white;border-radius:999px;padding:8px;cursor:pointer;border:1px solid rgba(2,6,23,0.06)}\n    \/* Camera preview placeholder *\/\n    .camera-preview{width:300px;height:200px;background:#0f172a;border-radius:8px;color:white;display:grid;place-items:center;font-weight:700}\n    \/* footer *\/\n    footer{margin-top:56px;padding:18px 0;color:var(--muted);font-size:13px;text-align:center}\n    \/* small screens *\/\n    @media (max-width:980px){\n      .hero{grid-template-columns:1fr;gap:28px}\n      .product-card{width:100%;height:auto}\n      .visual-wrap{order:-1}\n    }\n  \u003c\/style\u003e\n\n\n  \u003cdiv class=\"container\"\u003e\n    \u003cheader\u003e\n      \u003cdiv class=\"brand\" aria-hidden=\"true\"\u003e\n        \u003cdiv class=\"logo\"\u003eG\u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003ch1\u003eGolens\u003c\/h1\u003e\n          \u003cdiv style=\"color:var(--muted);font-size:13px\"\u003eRoyal Guard — Smart Door Lock\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cnav aria-label=\"Main\"\u003e\n        \u003ca href=\"#features\"\u003eFeatures\u003c\/a\u003e\n        \u003ca href=\"#specs\"\u003eSpecifications\u003c\/a\u003e\n        \u003ca href=\"#gallery\"\u003eGallery\u003c\/a\u003e\n        \u003ca href=\"#download\"\u003eManual\u003c\/a\u003e\n      \u003c\/nav\u003e\n    \u003c\/header\u003e\n\n    \u003csection class=\"hero\" aria-labelledby=\"product-title\"\u003e\n      \u003cdiv\u003e\n        \u003cdiv class=\"kicker\" aria-hidden=\"true\"\u003e6-in-1 Smart Unlock\u003c\/div\u003e\n        \u003ch2 id=\"product-title\"\u003eGolens Royal Guard — Royal Guard Model\u003c\/h2\u003e\n        \u003cp class=\"lead\"\u003eNext-generation smart door lock with integrated camera and Wi‑Fi control. Multi-factor authentication—fingerprint, PIN, RFID, mechanical key, app control and temporary OTP—designed for robust residential and commercial security.\u003c\/p\u003e\n\n        \u003cdiv class=\"cta-row\"\u003e\n          \u003cbutton class=\"btn\" id=\"open-gallery\" aria-controls=\"gallery\" title=\"View product gallery\"\u003eView gallery\u003c\/button\u003e\n          \u003cbutton class=\"btn secondary\" id=\"toggle-camera\" title=\"Preview camera (uses your webcam)\"\u003eCamera preview\u003c\/button\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"specs\" aria-hidden=\"true\"\u003e\n          \u003cdiv class=\"spec\"\u003eFingerprint\u003c\/div\u003e\n          \u003cdiv class=\"spec\"\u003eWi‑Fi Remote Unlock\u003c\/div\u003e\n          \u003cdiv class=\"spec\"\u003eTemporary OTP\u003c\/div\u003e\n          \u003cdiv class=\"spec\"\u003eZinc Alloy Body\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"grid-2\" style=\"margin-top:22px\"\u003e\n          \u003cdiv class=\"card reveal\" data-reveal\u003e\n            \u003ch3\u003eWhy Royal Guard?\u003c\/h3\u003e\n            \u003cul class=\"features\" aria-hidden=\"false\"\u003e\n              \u003cli class=\"feature\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\u003crect width=\"24\" height=\"24\" rx=\"6\" fill=\"#eef2ff\"\u003e\u003c\/rect\u003e\u003c\/svg\u003e\u003cdiv\u003e\n\u003cstrong\u003e6 Authentication Modes\u003c\/strong\u003e\u003cdiv style=\"color:var(--muted)\"\u003eFingerprint, PIN, RFID, Key, App, OTP\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n              \u003cli class=\"feature\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\u003crect width=\"24\" height=\"24\" rx=\"6\" fill=\"#ecfeff\"\u003e\u003c\/rect\u003e\u003c\/svg\u003e\u003cdiv\u003e\n\u003cstrong\u003eIntegrated Camera\u003c\/strong\u003e\u003cdiv style=\"color:var(--muted)\"\u003eVisual verification \u0026amp; snapshots on access\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n              \u003cli class=\"feature\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\u003crect width=\"24\" height=\"24\" rx=\"6\" fill=\"#fff5f0\"\u003e\u003c\/rect\u003e\u003c\/svg\u003e\u003cdiv\u003e\n\u003cstrong\u003eDurable Build\u003c\/strong\u003e\u003cdiv style=\"color:var(--muted)\"\u003eHigh-density Zinc Alloy + Double Clutch Cylinder\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n              \u003cli class=\"feature\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\u003crect width=\"24\" height=\"24\" rx=\"6\" fill=\"#f0fdf4\"\u003e\u003c\/rect\u003e\u003c\/svg\u003e\u003cdiv\u003e\n\u003cstrong\u003eSmart App Control\u003c\/strong\u003e\u003cdiv style=\"color:var(--muted)\"\u003eRemote unlock, logs, user management\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n            \u003c\/ul\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"card reveal\" data-reveal\u003e\n            \u003ch3\u003eQuick specifications\u003c\/h3\u003e\n            \u003ctable class=\"spec-table\" role=\"table\" aria-label=\"Product specifications\"\u003e\n              \u003ctbody\u003e\n                \u003ctr\u003e\n\u003ctd\u003eBrand\u003c\/td\u003e\n\u003ctd\u003eGolens\u003c\/td\u003e\n\u003c\/tr\u003e\n                \u003ctr\u003e\n\u003ctd\u003eModel\u003c\/td\u003e\n\u003ctd\u003eRoyal Guard\u003c\/td\u003e\n\u003c\/tr\u003e\n                \u003ctr\u003e\n\u003ctd\u003eDoor thickness\u003c\/td\u003e\n\u003ctd\u003e30 mm — 100 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n                \u003ctr\u003e\n\u003ctd\u003eMaterial\u003c\/td\u003e\n\u003ctd\u003eZinc Alloy\u003c\/td\u003e\n\u003c\/tr\u003e\n                \u003ctr\u003e\n\u003ctd\u003eConnectivity\u003c\/td\u003e\n\u003ctd\u003eWi‑Fi\u003c\/td\u003e\n\u003c\/tr\u003e\n                \u003ctr\u003e\n\u003ctd\u003eDimensions\u003c\/td\u003e\n\u003ctd\u003e7.2 × 8.5 × 17.8 cm\u003c\/td\u003e\n\u003c\/tr\u003e\n                \u003ctr\u003e\n\u003ctd\u003eWeight\u003c\/td\u003e\n\u003ctd\u003e1080 g\u003c\/td\u003e\n\u003c\/tr\u003e\n                \u003ctr\u003e\n\u003ctd\u003eWarranty\u003c\/td\u003e\n\u003ctd\u003e1 Year Base Manufacturer Warranty\u003c\/td\u003e\n\u003c\/tr\u003e\n              \u003c\/tbody\u003e\n            \u003c\/table\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"visual-wrap\" aria-hidden=\"false\"\u003e\n        \u003cdiv class=\"product-card tilt\" id=\"productCard\" role=\"figure\" aria-label=\"Product visualization\"\u003e\n          \u003cdiv class=\"badge\"\u003eRoyal Guard\u003c\/div\u003e\n          \u003cdiv class=\"product-art\" id=\"productArt\"\u003e\n            \u003cdiv class=\"lock-mock\" aria-hidden=\"true\"\u003e\n              \u003cdiv class=\"camera\" id=\"cameraDot\" title=\"Camera status\"\u003e\n                \u003c!-- camera lens icon --\u003e\n                \u003csvg width=\"30\" viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\n                  \u003ccircle cx=\"12\" cy=\"12\" r=\"6\" fill=\"#022047\"\u003e\u003c\/circle\u003e\n                  \u003ccircle cx=\"12\" cy=\"12\" r=\"2.8\" fill=\"#6bdcb6\"\u003e\u003c\/circle\u003e\n                \u003c\/svg\u003e\n              \u003c\/div\u003e\n\n              \u003cdiv class=\"fingerprint\" title=\"Fingerprint sensor\"\u003e\n                \u003csvg width=\"40\" viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\n                  \u003cpath d=\"M12 2v4\" stroke=\"rgba(255,255,255,0.9)\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\n                  \u003cpath d=\"M7 5c1.6-1.6 5-1.8 7 0 2 1.8 2 4 2 7\" stroke=\"rgba(255,255,255,0.9)\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\n                \u003c\/svg\u003e\n              \u003c\/div\u003e\n\n              \u003cdiv style=\"font-size:12px;color:rgba(255,255,255,0.78);margin-top:12px;text-align:center\"\u003eHigh-Precision Fingerprint\u003c\/div\u003e\n\n              \u003cdiv style=\"position:absolute;left:12px;bottom:18px;color:rgba(255,255,255,0.78);font-size:13px\"\u003e\n                \u003cdiv style=\"font-weight:700\"\u003eDouble Clutch Cylinder\u003c\/div\u003e\n                \u003cdiv style=\"color:rgba(255,255,255,0.6);font-size:12px\"\u003eTamper-resistant\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv style=\"position:absolute;left:22px;bottom:18px;transform:translateZ(40px)\"\u003e\n            \u003csmall style=\"color:var(--muted)\"\u003eMulti-mode unlock • Wi‑Fi • Camera\u003c\/small\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection id=\"features\" class=\"reveal\" data-reveal\u003e\n      \u003cdiv class=\"card\"\u003e\n        \u003ch3\u003eKey Features \u0026amp; Visual Demos\u003c\/h3\u003e\n        \u003cp style=\"color:var(--muted)\"\u003eInteractive demos and micro-animations below show how the product feels on a modern website. All effects are lightweight and accessible.\u003c\/p\u003e\n\n        \u003cdiv style=\"display:flex;gap:18px;flex-wrap:wrap;margin-top:16px\"\u003e\n          \u003cdiv class=\"card\" style=\"flex:1;min-width:260px\"\u003e\n            \u003ch4 style=\"margin:0 0 10px 0\"\u003eFingerprint Scan — live visual\u003c\/h4\u003e\n            \u003cdiv style=\"display:grid;place-items:center;padding:18px\"\u003e\n              \u003cdiv style=\"width:160px;height:160px;border-radius:16px;background:linear-gradient(180deg,#f8fbff,#eef6ff);display:grid;place-items:center;box-shadow:0 10px 30px rgba(2,6,23,0.06)\"\u003e\n                \u003cdiv id=\"fpPulse\" style=\"width:86px;height:86px;border-radius:50%;background:linear-gradient(90deg,#0b5fff,#1fb6ff);display:grid;place-items:center;color:white;font-weight:800\"\u003e\n                  \u003cdiv style=\"font-size:12px\"\u003eSCAN\u003c\/div\u003e\n                \u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"card\" style=\"flex:1;min-width:260px\"\u003e\n            \u003ch4 style=\"margin:0 0 10px 0\"\u003eTemporary Passcode (OTP)\u003c\/h4\u003e\n            \u003cdiv style=\"display:flex;gap:12px;align-items:center\"\u003e\n              \u003cinput id=\"otpInput\" aria-label=\"Temporary OTP\" placeholder=\"Enter OTP\" style=\"flex:1;padding:10px;border-radius:8px;border:1px solid rgba(2,6,23,0.06)\"\u003e\n              \u003cbutton class=\"btn secondary\" id=\"genOtp\"\u003eGenerate\u003c\/button\u003e\n            \u003c\/div\u003e\n            \u003cdiv id=\"otpResult\" style=\"margin-top:10px;color:var(--muted);font-weight:700\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"card\" style=\"flex:1;min-width:260px\"\u003e\n            \u003ch4 style=\"margin:0 0 10px 0\"\u003eCamera Snapshot\u003c\/h4\u003e\n            \u003cdiv style=\"display:grid;gap:8px\"\u003e\n              \u003cdiv class=\"camera-preview\" id=\"cameraPreview\"\u003eNo preview\u003c\/div\u003e\n              \u003cdiv style=\"display:flex;gap:8px\"\u003e\n                \u003cbutton class=\"btn\" id=\"startCam\"\u003eEnable preview\u003c\/button\u003e\n                \u003cbutton class=\"btn secondary\" id=\"snap\" disabled\u003eSnapshot\u003c\/button\u003e\n              \u003c\/div\u003e\n              \u003cdiv id=\"snapshotHolder\" style=\"margin-top:8px\"\u003e\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 id=\"specs\" class=\"reveal\" data-reveal style=\"margin-top:20px\"\u003e\n      \u003cdiv class=\"card\"\u003e\n        \u003ch3\u003eIncluded Components\u003c\/h3\u003e\n        \u003cul class=\"components\" style=\"color:var(--muted);margin-top:12px\"\u003e\n          \u003cli\u003eFront Panel \u0026amp; Back Panel Assembly\u003c\/li\u003e\n          \u003cli\u003eInner Sheet Metal Cover, Lock Body \u0026amp; Installation Hardware Set\u003c\/li\u003e\n          \u003cli\u003eChime \/ Bell Unit\u003c\/li\u003e\n          \u003cli\u003e2 Mechanical Backup Keys\u003c\/li\u003e\n          \u003cli\u003e2 IC RFID Cards\u003c\/li\u003e\n          \u003cli\u003eRechargeable Battery Pack\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection id=\"gallery\" style=\"margin-top:26px\" class=\"reveal\" data-reveal\u003e\n      \u003cdiv class=\"card\"\u003e\n        \u003ch3\u003eGallery \u0026amp; Mockups\u003c\/h3\u003e\n        \u003cdiv class=\"thumbs\"\u003e\n          \u003cdiv class=\"thumb\" data-large\u003e\u003csvg width=\"46\" viewbox=\"0 0 24 24\" fill=\"none\"\u003e\u003crect width=\"24\" height=\"24\" rx=\"4\" fill=\"#f8fafc\"\u003e\u003c\/rect\u003e\u003cpath d=\"M6 10h12M6 14h12M10 6h4\" stroke=\"#0b1220\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"thumb\" data-large\u003e\u003csvg width=\"46\" viewbox=\"0 0 24 24\" fill=\"none\"\u003e\u003crect width=\"24\" height=\"24\" rx=\"4\" fill=\"#f0f9ff\"\u003e\u003c\/rect\u003e\u003ccircle cx=\"12\" cy=\"9\" r=\"3\" stroke=\"#0b5fff\" stroke-width=\"1.6\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"thumb\" data-large\u003e\u003csvg width=\"46\" viewbox=\"0 0 24 24\" fill=\"none\"\u003e\u003crect width=\"24\" height=\"24\" rx=\"4\" fill=\"#fff7ed\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 16l2-4 2 2 4-6\" stroke=\"#f97316\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003cfooter\u003e\n      \u003cdiv\u003eDesigned for a white-background website — typography, spacing, and accent colors are tuned for clarity and visual impact. No pricing displayed.\u003c\/div\u003e\n      \u003cdiv style=\"margin-top:8px\"\u003eGolens • Royal Guard • Demo page\u003c\/div\u003e\n    \u003c\/footer\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Gallery modal --\u003e\n  \u003cdiv id=\"modal\" class=\"modal\" role=\"dialog\" aria-modal=\"true\" aria-hidden=\"true\"\u003e\n    \u003cdiv class=\"frame\" role=\"document\"\u003e\n      \u003cbutton class=\"close\" id=\"closeModal\" aria-label=\"Close gallery\"\u003e✕\u003c\/button\u003e\n      \u003ch3 style=\"margin-top:0\"\u003eGallery\u003c\/h3\u003e\n      \u003cdiv style=\"display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap\"\u003e\n        \u003cdiv style=\"flex:1;min-width:300px\"\u003e\n          \u003c!-- Large mock image (SVG) --\u003e\n          \u003cdiv style=\"background:linear-gradient(180deg,#ffffff,#f4f8ff);border-radius:12px;padding:18px;box-shadow:0 10px 30px rgba(2,6,23,0.06)\"\u003e\n            \u003csvg width=\"100%\" viewbox=\"0 0 800 420\" preserveaspectratio=\"xMidYMid meet\" aria-hidden=\"true\"\u003e\n              \u003cdefs\u003e\n                \u003clineargradient id=\"g1\" x1=\"0\" x2=\"1\"\u003e\u003cstop offset=\"0\" stop-color=\"#ffffff\"\u003e\u003c\/stop\u003e\u003cstop offset=\"1\" stop-color=\"#eef6ff\"\u003e\u003c\/stop\u003e\u003c\/lineargradient\u003e\n              \u003c\/defs\u003e\n              \u003crect x=\"0\" y=\"0\" width=\"800\" height=\"420\" rx=\"14\" fill=\"url(#g1)\"\u003e\u003c\/rect\u003e\n              \u003c!-- Camera widget --\u003e\n              \u003cg transform=\"translate(60,40)\"\u003e\n                \u003crect x=\"0\" y=\"0\" width=\"260\" height=\"340\" rx=\"12\" fill=\"#0f1a2a\"\u003e\u003c\/rect\u003e\n                \u003ccircle cx=\"130\" cy=\"70\" r=\"44\" fill=\"#092133\"\u003e\u003c\/circle\u003e\n                \u003ccircle cx=\"130\" cy=\"70\" r=\"20\" fill=\"#1fb6ff\"\u003e\u003c\/circle\u003e\n                \u003crect x=\"18\" y=\"210\" width=\"224\" height=\"98\" rx=\"8\" fill=\"#061224\"\u003e\u003c\/rect\u003e\n              \u003c\/g\u003e\n              \u003c!-- Info card --\u003e\n              \u003cg transform=\"translate(360,60)\" fill=\"#0b1220\"\u003e\n                \u003crect width=\"360\" height=\"120\" rx=\"10\" fill=\"#fff\"\u003e\u003c\/rect\u003e\n                \u003ctext x=\"20\" y=\"36\" font-size=\"20\" font-weight=\"700\"\u003eRoyal Guard\u003c\/text\u003e\n                \u003ctext x=\"20\" y=\"66\" font-size=\"13\" fill=\"#6b7280\"\u003eFingerprint • Wi‑Fi • Camera • OTP • RFID\u003c\/text\u003e\n              \u003c\/g\u003e\n            \u003c\/svg\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv style=\"width:260px\"\u003e\n          \u003ch4 style=\"margin:0 0 8px 0\"\u003eSnapshot\u003c\/h4\u003e\n          \u003cdiv id=\"modalSnapshot\" style=\"background:#0f172a;color:white;height:180px;border-radius:10px;display:grid;place-items:center\"\u003eNo snapshot yet\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cscript\u003e\n    \/\/ Light-weight animation \u0026 interactivity\n    (function(){\n      \/\/ Reveal on scroll\n      const reveals = document.querySelectorAll('[data-reveal]');\n      const io = new IntersectionObserver((entries)=\u003e{\n        entries.forEach(e=\u003e{\n          if(e.isIntersecting) e.target.classList.add('visible');\n        });\n      }, {threshold:0.08});\n      reveals.forEach(r=\u003eio.observe(r));\n\n      \/\/ 3D tilt on product card\n      const card = document.getElementById('productCard');\n      const art = document.getElementById('productArt');\n      let rect;\n      function onMove(e){\n        rect = rect || card.getBoundingClientRect();\n        const x = (e.clientX - rect.left) \/ rect.width - 0.5;\n        const y = (e.clientY - rect.top) \/ rect.height - 0.5;\n        const rx = (y) * 10;\n        const ry = (x) * -18;\n        card.style.transform = `rotateX(${rx}deg) rotateY(${ry}deg) translateZ(6px)`;\n      }\n      function onLeave(){\n        card.style.transform = '';\n        rect = null;\n      }\n      card.addEventListener('mousemove', onMove);\n      card.addEventListener('mouseleave', onLeave);\n      card.addEventListener('touchmove', e=\u003eonMove(e.touches[0]));\n\n      \/\/ Gallery modal\n      const modal = document.getElementById('modal');\n      const openGallery = document.getElementById('open-gallery');\n      const closeModal = document.getElementById('closeModal');\n      openGallery.addEventListener('click', ()=\u003e{ modal.classList.add('open'); modal.setAttribute('aria-hidden','false')});\n      closeModal.addEventListener('click', ()=\u003e{ modal.classList.remove('open'); modal.setAttribute('aria-hidden','true')});\n      modal.addEventListener('click', (ev)=\u003e{ if(ev.target === modal){ modal.classList.remove('open'); modal.setAttribute('aria-hidden','true')} });\n\n      \/\/ FPS \/ Fingerprint pulse demo\n      const fpPulse = document.getElementById('fpPulse');\n      setInterval(()=\u003e {\n        fpPulse.animate([{transform:'scale(1)'},{transform:'scale(1.08)'}], {duration:900, easing:'ease-out'} );\n      }, 1800);\n\n      \/\/ OTP generator (demo only)\n      const genBtn = document.getElementById('genOtp');\n      const otpResult = document.getElementById('otpResult');\n      genBtn.addEventListener('click', ()=\u003e{\n        const otp = Math.floor(100000 + Math.random()*900000);\n        otpResult.textContent = 'Your one-time code (demo): ' + otp;\n        otpResult.animate([{opacity:0},{opacity:1}],{duration:320});\n      });\n\n      \/\/ Camera preview \u0026 snapshot\n      const camBtn = document.getElementById('startCam');\n      const snapBtn = document.getElementById('snap');\n      const cameraPreview = document.getElementById('cameraPreview');\n      const snapshotHolder = document.getElementById('snapshotHolder');\n      const modalSnapshot = document.getElementById('modalSnapshot');\n      let stream, videoElem;\n      async function startCamera(){\n        try{\n          stream = await navigator.mediaDevices.getUserMedia({video:{width:640,height:480}, audio:false});\n          videoElem = document.createElement('video');\n          videoElem.srcObject = stream;\n          videoElem.autoplay = true;\n          videoElem.playsInline = true;\n          videoElem.muted = true;\n          videoElem.style.width = '100%';\n          videoElem.style.height = '100%';\n          videoElem.style.objectFit = 'cover';\n          cameraPreview.textContent = '';\n          cameraPreview.appendChild(videoElem);\n          snapBtn.disabled = false;\n        } catch(err){\n          cameraPreview.textContent = 'Camera unavailable';\n          console.warn('camera start failed', err);\n        }\n      }\n      function stopCamera(){\n        if(stream){\n          stream.getTracks().forEach(t=\u003et.stop());\n          stream = null;\n          cameraPreview.textContent = 'No preview';\n          snapBtn.disabled = true;\n        }\n      }\n      camBtn.addEventListener('click', ()=\u003e {\n        if(stream) { stopCamera(); camBtn.textContent = 'Enable preview'; }\n        else { startCamera(); camBtn.textContent = 'Stop preview'; }\n      });\n      snapBtn.addEventListener('click', ()=\u003e{\n        if(!videoElem) return;\n        const c = document.createElement('canvas');\n        c.width = videoElem.videoWidth;\n        c.height = videoElem.videoHeight;\n        c.getContext('2d').drawImage(videoElem,0,0,c.width,c.height);\n        const data = c.toDataURL('image\/jpeg',0.85);\n        const img = document.createElement('img');\n        img.src = data;\n        img.style.maxWidth='100%';\n        img.style.borderRadius='8px';\n        snapshotHolder.innerHTML='';\n        snapshotHolder.appendChild(img);\n        \/\/ also show in modal snapshot\n        modalSnapshot.innerHTML = '';\n        const img2 = img.cloneNode();\n        img2.style.width='100%';\n        modalSnapshot.appendChild(img2);\n      });\n\n      \/\/ Toggle camera preview button in header (bonus)\n      const headerCam = document.getElementById('toggle-camera');\n      headerCam.addEventListener('click', ()=\u003e {\n        window.scrollTo({top:document.querySelector('#features').offsetTop - 12, behavior:'smooth'});\n        setTimeout(()=\u003e document.getElementById('startCam').click(), 600);\n      });\n\n      \/\/ Thumbs to open modal (simulate)\n      document.querySelectorAll('.thumb').forEach(t=\u003e{\n        t.addEventListener('click', ()=\u003e openGallery.click());\n      });\n\n      \/\/ Accessibility: escape closes modal\n      document.addEventListener('keydown', (e)=\u003e {\n        if(e.key === 'Escape'){\n          modal.classList.remove('open');\n          modal.setAttribute('aria-hidden','true');\n        }\n      });\n\n      \/\/ On page load: animate certain elements for polish\n      window.addEventListener('load', ()=\u003e {\n        document.querySelectorAll('.reveal').forEach((el,i)=\u003e{\n          setTimeout(()=\u003eel.classList.add('visible'), 180 + i*80);\n        });\n      });\n    })();\n  \u003c\/script\u003e\n\n\u003c\/body\u003e","brand":"golensshop","offers":[{"title":"Default Title","offer_id":54620773875991,"sku":null,"price":28000.0,"currency_code":"INR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0715\/3113\/5255\/files\/1_aa97002e-29da-43d1-8131-0530f43eae2a.png?v=1786107796","url":"https:\/\/golens.in\/products\/golens-royal-guard-smart-door-lock-with-camera-wifi-enabled-fingerprint-password-rfid-card-key-app-unlock-temporary-password-otp-suitable-for-wooden-steel-doors-30-100mm","provider":"Golens","version":"1.0","type":"link"}