<!DOCTYPE html>
<!-- This site was created in Webflow. https://www.webflow.com -->
<!-- Last Published: Thu Nov 17 2022 15:17:29 GMT+0000 (Coordinated Universal Time) -->
<html data-wf-domain="leonardos-samurai-site-cfa17ca4b3eb304a.webflow.io" data-wf-page="632dc8b8adc03d20fbaa8c0e"
    data-wf-site="632dc8b8adc03d7837aa8b50">

<head>
    <!-- Google Tag Manager -->
    <script>(function (w, d, s, l, i) {
            w[l] = w[l] || []; w[l].push({
                'gtm.start':
                    new Date().getTime(), event: 'gtm.js'
            }); var f = d.getElementsByTagName(s)[0],
                j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
                    'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
        })(window, document, 'script', 'dataLayer', 'GTM-T24NF6W8');</script>
    <!-- End Google Tag Manager -->
    <meta charset="utf-8" />
    <title>Login</title>
    <meta content="Login" property="og:title" />
    <meta content="Login" property="twitter:title" />
    <meta content="width=device-width, initial-scale=1" name="viewport" />
    <meta content="Webflow" name="generator" />
    <link href="https://sapienwebflow.s3.amazonaws.com/public/css/login.css" rel="stylesheet" type="text/css" />
    <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
    <script type="text/javascript">
        WebFont.load({
            google: {
                families: ["Inter:regular,500"]
            }
        });
    </script>
    <!--[if lt IE 9]><script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js" type="text/javascript"></script><![endif]-->
    <script type="text/javascript">
        !function (o, c) {
            var n = c.documentElement,
                t = " w-mod-";
            n.className += t + "js",
                ("ontouchstart" in o || o.DocumentTouch && c instanceof DocumentTouch) && (n.className += t + "touch")
        }(window, document);
    </script>
    <link href="https://sapienwebflow.s3.amazonaws.com/public/img/r+rodzer+logo+32.png" rel="shortcut icon"
        type="image/x-icon" />
    <link href="https://sapienwebflow.s3.amazonaws.com/public/img/r+rodzer+logo+256.png" rel="apple-touch-icon" />
</head>

<body>
    <!-- Google Tag Manager (noscript) -->
    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T24NF6W8" height="0" width="0"
            style="display:none;visibility:hidden"></iframe></noscript>
    <!-- End Google Tag Manager (noscript) -->
    <div class="utilities-section">
        <div class="utilities-form-column">
            <div class="utilities-form-wrap">
                <h4 class="h4-title xs-margin">Login to Rodzer</h4>
                <div class="m-paragraph l-margin">
                    Rodzer’s use and transfer of information received from Google APIs to any other app will adhere to
                    <a href="https://developers.google.com/terms/api-services-user-data-policy#additional_requirements_for_specific_api_scopes"
                        target="_blank" class="link-2">Google API Services User Data Policy,</a>
                    including the Limited Use requirements.
                    By logging in you accept you&#x27;ve read and agree to the processing of your personal data by
                    Rodzer as described in the
                    <a href="https://www.rodzer.us/privacypolicyas21FEB2024.html" target="_blank" class="link-2">Privacy
                        Policy</a>
                    and to the
                    <a href="https://www.rodzer.us/termsofservice25Dec2023.html" target="_blank" class="link-3">Terms of
                        Service</a>
                </div>
                <div class="utilities-form w-form">
                    <form id="email-form" name="email-form" data-name="Email Form" method="get">
                        <a href="/auth/google" class="social-sign-up w-inline-block">
                            <img src="https://uploads-ssl.webflow.com/6246a8bb90532a2ce997faf4/626a56967a2024b99efc86ea_search.png"
                                loading="lazy" width="24" alt="" class="social-sign-up-icon" />
                            <div class="social-sign-up-text">Login With Google</div>
                        </a>
                    </form>
                    <div class="success-message w-form-done">
                        <div class="center-content">
                            <div class="xs-badge-grid">
                                <img src="https://uploads-ssl.webflow.com/6262a3e80c60bf573256a3c0/6262a3e80c60bf70c956a3e7_check-circle.svg"
                                    loading="lazy" alt="" class="s-icon" />
                                <div>Thank you! Your submission has been received!</div>
                            </div>
                        </div>
                    </div>
                    <div class="error-message w-form-fail">
                        <div class="center-content">
                            <div class="xs-badge-grid">
                                <img src="https://uploads-ssl.webflow.com/6262a3e80c60bf573256a3c0/6262a3e80c60bf360756a3e8_alert-triangle.svg"
                                    loading="lazy" alt="" class="s-icon" />
                                <div>Oops! Something went wrong!</div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=632dc8b8adc03d7837aa8b50"
        type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
        crossorigin="anonymous"></script>
    <script src="https://sapienwebflow.s3.amazonaws.com/public/js/login.js" type="text/javascript"></script>
    <!--[if lte IE 9]><script src="//cdnjs.cloudflare.com/ajax/libs/placeholders/3.0.2/placeholders.min.js"></script><![endif]-->
</body>

</html>