PageSourceSearch

https://www.ikointl.com/user/login

html ikointl.com collected 2026-10-02 05:48:28 UTC 17,242 bytes, 481 lines download raw bytes

1<!doctype html>
2<html lang="en" class="h-100">
3  <head>
4    <meta charset="utf-8"/>
5    <!-- needs to be right at the top to prevent Chrome from reloading favicon on every route change -->
6    <link rel="icon" type="image/x-icon" href="favicon.ico"/>
7    <title>IKO</title>
8
9    <!-- Preconnects -->
10    <link rel="preconnect" href="https://d8.ikointl.com"/>
11    <link rel="preconnect" href="https://connect.facebook.net"/>
12
13    <!-- Font Preloads -->
14    <link rel="prefetch" href="/assets/fonts/iko.woff2" as="font" type="font/woff2" crossorigin=""/>
15    <link rel="preload" href="/assets/fonts/opensans.woff2?v=13" as="font" type="font/woff2" crossorigin=""/>
16    <base href="/"/>
17
18    <!-- Viewport and Other Meta Tags -->
19    <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
20    <meta name="msapplication-tap-highlight" content="no"/>
21    <meta name="theme-color" content="#4e8ef7"/>
22    <meta name="apple-itunes-app" content="app-id=1314907796, affiliate-data=IKO, app-argument="/>
23    <meta property="og:image" content="https://beta.ikointl.com/assets/iko-logo-dark.png"/>
24    <meta property="og:image:width" content="512"/>
25    <meta property="og:image:height" content="512"/>
26    <meta name="twitter:image" content="https://beta.ikointl.com/assets/iko-logo-dark.png"/>
27    <meta name="twitter:image:width" content="512"/>
28    <meta name="twitter:image:height" content="512"/>
29    <meta property="og:type" content="website"/>
30    <!-- disable dark theme -->
31    <meta name="color-scheme" content="light dark"/>
32    <!-- TODO -->
33    <meta name="robots" content="index,follow"/>
34
35    <meta name="description" content="IKO is the world's leading kiteboarding organization specializing in kiteboard education, promoting safe practices and enhancing the highest standards for the industry."/>
36
37    <!-- add to homescreen for ios -->
38    <meta name="apple-mobile-web-app-capable" content="yes"/>
39    <meta name="apple-mobile-web-app-status-bar-style" content="default"/>
40    <link rel="manifest" href="manifest.webmanifest"/>
41    <link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png"/>
42    <link rel="canonical" href="https://www.ikointl.com/"/>
43    <!-- htmllint-disable -->
44    <style type="text/css">
45      html {
46        /* height: 100vh !important; */
47        width: 100vw !important;
48      }
49      .pac-container {
50        z-index: 1055;
51      }
52
53      #iko-splash-screen,
54      #browser-not-supported {
55        display: none;
56        position: absolute;
57        top: 0;
58        left: 0;
59        right: 0;
60        bottom: 0;
61        background-image: linear-gradient(to bottom, #005eb8, #005eb8, #003a72, #002950, #001930);
62        z-index: 99999;
63        pointer-events: none;
64      }
65
66      #iko-splash-screen .center {
67        display: block;
68        width: 100%;
69        position: absolute;
70        top: 50%;
71        transform: translateY(-50%);
72      }
73
74      #iko-splash-screen .logo {
75        width: 320px;
76        margin: 0 auto;
77      }
78
79      /* #iko-splash-screen .logo img {
80        filter: drop-shadow(0px 10px 6px rgba(0, 0, 0, 0.2));
81      } */
82
83      #iko-splash-screen .spinner-wrapper {
84        display: block;
85        position: relative;
86        width: 100%;
87        min-height: 100px;
88        height: 100px;
89      }
90
91      #iko-splash-screen .spinner-wrapper .spinner {
92        position: absolute;
93        overflow: hidden;
94        left: 50%;
95        margin-left: -50px;
96        animation: outer-rotate 2.91667s linear infinite;
97      }
98
99      #iko-splash-screen .spinner-wrapper .spinner .inner {
100        width: 100px;
101        height: 100px;
102        position: relative;
103        animation: sporadic-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite;
104      }
105
106      #iko-splash-screen .spinner-wrapper .spinner .inner .gap {
107        position: absolute;
108        left: 49px;
109        right: 49px;
110        top: 0;
111        bottom: 0;
112        border-top: 10px solid;
113        box-sizing: border-box;
114      }
115
116      #iko-splash-screen .spinner-wrapper .spinner .inner .left,
117      #iko-splash-screen .spinner-wrapper .spinner .inner .right {
118        position: absolute;
119        top: 0;
120        height: 100px;
121        width: 50px;
122        overflow: hidden;
123      }
124
125      #iko-splash-screen .spinner-wrapper .spinner .inner .left .half-circle,
126      #iko-splash-screen .spinner-wrapper .spinner .inner .right .half-circle {
127        position: absolute;
128        top: 0;
129        width: 100px;
130        height: 100px;
131        box-sizing: border-box;
132        /* border: 10px solid #4285F4; */
133        border: 10px solid white;
134        border-bottom-color: transparent;
135        border-radius: 50%;
136      }
137
138      #iko-splash-screen .spinner-wrapper .spinner .inner .left {
139        left: 0;
140      }
141
142      #iko-splash-screen .spinner-wrapper .spinner .inner .left .half-circle {
143        left: 0;
144        border-right-color: transparent;
145        animation: left-wobble 1.3125s cubic-bezier(0.35, 0, 0.25, 1) infinite;
146        -webkit-animation: left-wobble 1.3125s cubic-bezier(0.35, 0, 0.25, 1) infinite;
147      }
148
149      #iko-splash-screen .spinner-wrapper .spinner .inner .right {
150        right: 0;
151      }
152
153      #iko-splash-screen .spinner-wrapper .spinner .inner .right .half-circle {
154        right: 0;
155        border-left-color: transparent;
156        animation: right-wobble 1.3125s cubic-bezier(0.35, 0, 0.25, 1) infinite;
157        -webkit-animation: right-wobble 1.3125s cubic-bezier(0.35, 0, 0.25, 1) infinite;
158      }
159
160      @keyframes outer-rotate {
161        0% {
162          transform: rotate(0deg) scale(0.5);
163        }
164        100% {
165          transform: rotate(360deg) scale(0.5);
166        }
167      }
168
169      @keyframes left-wobble {
170        0%,
171        100% {
172          transform: rotate(130deg);
173        }
174        50% {
175          transform: rotate(-5deg);
176        }
177      }
178
179      @keyframes right-wobble {
180        0%,
181        100% {
182          transform: rotate(-130deg);
183        }
184        50% {
185          transform: rotate(5deg);
186        }
187      }
188
189      @keyframes sporadic-rotate {
190        12.5% {
191          transform: rotate(135deg);
192        }
193        25% {
194          transform: rotate(270deg);
195        }
196        37.5% {
197          transform: rotate(405deg);
198        }
199        50% {
200          transform: rotate(540deg);
201        }
202        62.5% {
203          transform: rotate(675deg);
204        }
205        75% {
206          transform: rotate(810deg);
207        }
208        87.5% {
209          transform: rotate(945deg);
210        }
211        100% {
212          transform: rotate(1080deg);
213        }
214      }
215
216      #browser-not-supported {
217        text-align: center;
218        color: white;
219        flex-direction: column;
220        align-items: center;
221      }
222
223      #browser-not-supported img.logo {
224        margin-bottom: 20px;
225        width: 320px;
226      }
227      #browser-not-supported img.warning {
228        margin-bottom: 10px;
229        width: 80px;
230      }
231      #browser-not-supported .warning-text {
232        margin: 0 30px;
233        text-align: left;
234      }
235
236      #browser-not-supported .warning-text .justify {
237        text-align: justify;
238      }
239
240      #browser-not-supported .warning-text .center {
241        text-align: center;
242      }
243    </style>
244  <link rel="stylesheet" href="styles.5e609ef359bda722.css"></head>
245
246  <body class="h-100">
247    <iko-splash-screen id="iko-splash-screen">
248      <div class="center">
249        <div class="logo">
250          <img width="320" height="96" src="/assets/images/iko-logo.svg" fetchpriority="high" alt="iko-logo"/>
251        </div>
252
253        <!-- Material Design Spinner -->
254        <div class="spinner-wrapper">
255          <div class="spinner">
256            <div class="inner">
257              <div class="gap"></div>
258              <div class="left">
259                <div class="half-circle"></div>
260              </div>
261              <div class="right">
262                <div class="half-circle"></div>
263              </div>
264            </div>
265          </div>
266        </div>
267        <!-- / Material Design Spinner -->
268      </div>
269    </iko-splash-screen>
270    <div id="browser-not-supported">
271      <img class="logo" data-src="/assets/images/iko-logo.svg" alt="iko-logo"/>
272      <img class="warning" data-src="/assets/images/warning-yellow.png" alt="warning-yellow"/>
273      <div class="warning-text">
274        <div class="justify">
275          The version of the Android System WebView that you are currently running is incompatible with our application.
276          To continue enjoying the smooth experience of our app, we kindly request that you update your Android System
277          WebView to the latest version.
278        </div>
279        <br/><br/>
280        <ol>
281          <li>Google Play Store: <b>Android System WebView</b></li>
282
283          <li>Press the "Update" button.</li>
284        </ol>
285        <br/>
286        <div class="center">
287          If the issue persists please contact <b href="mailto:[email protected]"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0e7d7b7e7e617c7a4e67656167607a62206d6163">[email&#160;protected]</a></b>
288        </div>
289      </div>
290    </div>
291    <!--[if lt IE 10]>
292      <p>
293        You are using an <strong>outdated</strong> browser. Please
294        <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.
295      </p>
296    <![endif]-->
297
298    <noscript>
299      <p>This page requires JavaScript to work properly. Please enable JavaScript in your browser.</p>
300    </noscript>
301    <!-- Include Cordova script only when needed -->
vendor: 113 bytes, lines 301-302
301
302    <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
302<script>
303      document.querySelector('#iko-splash-screen').style.display = 'block';
304      if (
305        (/^localhost/.test(location.host) && location.protocol === 'https:') ||
306        /^app.ikointl.com/.test(location.host)
307      ) {
308        // checking if the browser has the support for  > ES6
309        if (![].flat) {
310          const images = document.querySelectorAll('#browser-not-supported img');
311          images.forEach((image) => {
312            image.src = image.getAttribute('data-src');
313            image.removeAttribute('data-src');
314          });
315          document.querySelector('#iko-splash-screen').style.display = 'none';
316          document.querySelector('#browser-not-supported').style.display = 'flex';
317        } else {
318          document.write('
318<script src="cordova.js"><\/script>');
319        }
320      }
321    </script>
321
322    
322<script>
323      /*! modernizr 3.6.0 (Custom Build) | MIT *
324       * https://modernizr.com/download/?-webp-setclasses !*/
325      !(function (e, n, A) {
326        function o(e, n) {
327          return typeof e === n;
328        }
329        function t() {
330          var e, n, A, t, a, i, r;
331          for (var f in l)
332            if (l.hasOwnProperty(f)) {
333              if (
334                ((e = []),
335                (n = l[f]),
336                n.name && (e.push(n.name.toLowerCase()), n.options && n.options.aliases && n.options.aliases.length))
337              )
338                for (A = 0; A < n.options.aliases.length; A++) e.push(n.options.aliases[A].toLowerCase());
339              for (t = o(n.fn, 'function') ? n.fn() : n.fn, a = 0; a < e.length; a++)
340                ((i = e[a]),
341                  (r = i.split('.')),
342                  1 === r.length
343                    ? (Modernizr[r[0]] = t)
344                    : (!Modernizr[r[0]] ||
345                        Modernizr[r[0]] instanceof Boolean ||
346                        (Modernizr[r[0]] = new Boolean(Modernizr[r[0]])),
347                      (Modernizr[r[0]][r[1]] = t)),
348                  s.push((t ? '' : 'no-') + r.join('-')));
349            }
350        }
351        function a(e) {
352          var n = r.className,
353            A = Modernizr._config.classPrefix || '';
354          if ((c && (n = n.baseVal), Modernizr._config.enableJSClass)) {
355            var o = new RegExp('(^|\\s)' + A + 'no-js(\\s|$)');
356            n = n.replace(o, '$1' + A + 'js$2');
357          }
358          Modernizr._config.enableClasses &&
359            ((n += ' ' + A + e.join(' ' + A)), c ? (r.className.baseVal = n) : (r.className = n));
360        }
361        function i(e, n) {
362          if ('object' == typeof e) for (var A in e) u(e, A) && i(A, e[A]);
363          else {
364            e = e.toLowerCase();
365            var o = e.split('.'),
366              t = Modernizr[o[0]];
367            if ((2 == o.length && (t = t[o[1]]), 'undefined' != typeof t)) return Modernizr;
368            ((n = 'function' == typeof n ? n() : n),
369              1 == o.length
370                ? (Modernizr[o[0]] = n)
371                : (!Modernizr[o[0]] ||
372                    Modernizr[o[0]] instanceof Boolean ||
373                    (Modernizr[o[0]] = new Boolean(Modernizr[o[0]])),
374                  (Modernizr[o[0]][o[1]] = n)),
375              a([(n && 0 != n ? '' : 'no-') + o.join('-')]),
376              Modernizr._trigger(e, n));
377          }
378          return Modernizr;
379        }
380        var s = [],
381          r = n.documentElement,
382          l = [],
383          f = {
384            _version: '3.6.0',
385            _config: { classPrefix: '', enableClasses: !0, enableJSClass: !0, usePrefixes: !0 },
386            _q: [],
387            on: function (e, n) {
388              var A = this;
389              setTimeout(function () {
390                n(A[e]);
391              }, 0);
392            },
393            addTest: function (e, n, A) {
394              l.push({ name: e, fn: n, options: A });
395            },
396            addAsyncTest: function (e) {
397              l.push({ name: null, fn: e });
398            },
399          },
400          Modernizr = function () {};
401        ((Modernizr.prototype = f), (Modernizr = new Modernizr()));
402        var u,
403          c = 'svg' === r.nodeName.toLowerCase();
404        (!(function () {
405          var e = {}.hasOwnProperty;
406          u =
407            o(e, 'undefined') || o(e.call, 'undefined')
408              ? function (e, n) {
409                  return n in e && o(e.constructor.prototype[n], 'undefined');
410                }
411              : function (n, A) {
412                  return e.call(n, A);
413                };
414        })(),
415          (f._l = {}),
416          (f.on = function (e, n) {
417            (this._l[e] || (this._l[e] = []),
418              this._l[e].push(n),
419              Modernizr.hasOwnProperty(e) &&
420                setTimeout(function () {
421                  Modernizr._trigger(e, Modernizr[e]);
422                }, 0));
423          }),
424          (f._trigger = function (e, n) {
425            if (this._l[e]) {
426              var A = this._l[e];
427              (setTimeout(function () {
428                var e, o;
429                for (e = 0; e < A.length; e++) (o = A[e])(n);
430              }, 0),
431                delete this._l[e]);
432            }
433          }),
434          Modernizr._q.push(function () {
435            f.addTest = i;
436          }),
437          Modernizr.addAsyncTest(function () {
438            function e(e, n, A) {
439              function o(n) {
440                var o = n && 'load' === n.type ? 1 == t.width : !1,
441                  a = 'webp' === e;
442                (i(e, a && o ? new Boolean(o) : o), A && A(n));
443              }
444              var t = new Image();
445              ((t.onerror = o), (t.onload = o), (t.src = n));
446            }
447            var n = [
448                {
449                  uri: 'data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAwA0JaQAA3AA/vuUAAA=',
450                  name: 'webp',
451                },
452                {
453                  uri: 'data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==',
454                  name: 'webp.alpha',
455                },
456                {
457                  uri: 'data:image/webp;base64,UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA',
458                  name: 'webp.animation',
459                },
460                {
461                  uri: 'data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=',
462                  name: 'webp.lossless',
463                },
464              ],
465              A = n.shift();
466            e(A.name, A.uri, function (A) {
467              if (A && 'load' === A.type) for (var o = 0; o < n.length; o++) e(n[o].name, n[o].uri);
468            });
469          }),
470          t(),
471          a(s),
472          delete f.addTest,
473          delete f.addAsyncTest);
474        for (var p = 0; p < Modernizr._q.length; p++) Modernizr._q[p]();
475        e.Modernizr = Modernizr;
476      })(window, document);
477    </script>
477
478    <app-root></app-root>
479  
479<script src="runtime.cd1382908e1d048e.js" type="module"></script>
479<script src="polyfills.b852f1eb5b9812ba.js" type="module"></script>
479<script src="scripts.8a3b31fc685e4fba.js" defer></script>
479<script src="main.8eda810190c03354.js" type="module"></script>
479<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"3ae0ea8c7ac44061be0d671e252619a3","r":1,"spa":2}' crossorigin="anonymous"></script>
479
480</body>
481</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.