PageSourceSearch

https://www.losangelesrules.com/signup/

html losangelesrules.com collected 2026-10-04 08:04:54 UTC 16,126 bytes, 419 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" data-color-scheme="system">
3  <head>
4    <meta charset="utf-8">
5    <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
7    <title>Los Angeles Rules</title>
8
9    <meta name="HandheldFriendly" content="True">
10    <meta name="viewport" content="width=device-width, initial-scale=1.0">
11    
12    <meta name="theme-color" content="#1b7a2c">
13    <meta name="ghost-theme" content="Maali 1.8.0">
14
15
16    <link rel="preload" href="https://www.losangelesrules.com/assets/dist/app.min.js?v=hXqflqognnuEh3oU" as="script">
17    <link rel="preload" href="https://www.losangelesrules.com/assets/dist/app.min.css?v=S_Vd9p7BXloF9dvC" as="style">
18
19      <link rel="preconnect" href="https://fonts.googleapis.com">
20  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
21
22
23
24
25
26
27
28
29
30
31  <link rel="preload stylesheet" href="https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=Poppins:ital,wght@0,600;0,700;1,600;1,700&display=swap" 
32        as="style" onload="this.onload=null;this.rel='stylesheet'" crossorigin>
33  <style>
34    body { --font-headings: var(--gh-font-heading, 'Poppins'), sans-serif; }
35    body .content, p { --font-body: var(--gh-font-body, 'Lora'), serif; font-family: var(--font-body); }
36  </style>
37
38    
38<script async defer src="https://www.losangelesrules.com/assets/dist/app.min.js?v=hXqflqognnuEh3oU"></script>
38
39
40    <link rel="stylesheet" type="text/css" href="https://www.losangelesrules.com/assets/dist/app.min.css?v=S_Vd9p7BXloF9dvC">
41
42    <style>
43  :root {
44    --global-max-width: 1400px; /* site max width */
45    --global-content-width: 700px; /* post-content-width */
46    --global-wide-width: 960px; /* site max width */
47    --global-radius: 0px; /* default radius */
48    --global-gallery-gap: 1em; /* Image gallery distance between images */
49    --global-hyphens: none; /* none/auto */
50    --global-header-height: 92px;
51    --global-theme-notifications: visible; /* visible/hidden */
52    --global-progress-bar: visible; /* visible/hidden */
53    --global-content-preview-fading: 0%; /* 50%-100% for fading effect */
54    --global-scroll-behavior: smooth;
55  }
56</style>
57
58<script>
59  let preferredTheme = localStorage.getItem('PREFERRED_COLOR_SCHEME') || `system`;
60  document.documentElement.setAttribute('data-color-scheme', preferredTheme);
61  
62  // Global values needed
63  const themeGlobal = {
64    currentPage: parseInt(''),
65    nextPage: parseInt(''),
66    nextPageLink: '',
67    maxPages: parseInt(''), 
68    lastPage: `` === `` ? true : false,
69    postsPerPage: parseInt('12'),
70    scrollPos: 0,
71    imageLightbox: false
72  }
73
74  // Calculate contrast & HSL value;
75  function getBrandColorInfo(hexcolor) {
76    // get contrast
77    if (hexcolor.slice(0, 1) === '#') { hexcolor = hexcolor.slice(1); }
78    if (hexcolor.length === 3) { hexcolor = hexcolor.split('').map(function (hex) { return hex + hex;}).join(''); }
79    let r = parseInt(hexcolor.substr(0,2),16), g = parseInt(hexcolor.substr(2,2),16), b = parseInt(hexcolor.substr(4,2),16);
80    let yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;
81    const colorContrast = (yiq >= 128) ? '#000' : '#fff';
82
83    //get HSL
84    r /= 255, g /= 255, b /= 255;
85    const max = Math.max(r, g, b), min = Math.min(r, g, b);
86    let h, s, l = (max + min)  /  2;  
87    if ( max == min ) { h = s = 0; } else {
88      let d = max - min;
89      s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
90      switch(max){
91        case r: h = (g - b) / d + (g < b ? 6 : 0); break;
92        case g: h = (b - r) / d + 2; break;
93        case b: h = (r - g) / d + 4; break;
94      }
95      h /= 6;
96    }
97    const colorHSL = [Math.round(h * 360), Math.round(s * 100), Math.round(l * 100)];
98
99    // return
100    return { colorContrast, colorHSL }
101  };
102
103  const brandColor = getBrandColorInfo("#1b7a2c");
104  let style = document.createElement('style');
105  style.innerHTML = `:root { 
106    --color-brand-contrast: ${brandColor.colorContrast}; 
107    --color-brand-h: ${brandColor.colorHSL[0]};
108    --color-brand-s: ${brandColor.colorHSL[1]}%;
109    --color-brand-l: ${brandColor.colorHSL[2]}%;
110    --color-brand-hsl: ${brandColor.colorHSL[0]} ${brandColor.colorHSL[1]}% ${brandColor.colorHSL[2]}%;
111  }`
112  document.getElementsByTagName('head')[0].appendChild(style);
113</script>
113
114
115    
116    
117     
118
119    <link rel="canonical" href="https://www.losangelesrules.com/signup/">
120    <meta name="referrer" content="no-referrer-when-downgrade">
121    
122    <meta property="og:site_name" content="Los Angeles Rules">
123    <meta property="og:type" content="website">
124    <meta property="og:title" content="Los Angeles Rules">
125    <meta property="og:url" content="https://www.losangelesrules.com/signup/">
126    <meta name="twitter:card" content="summary">
127    <meta name="twitter:title" content="Los Angeles Rules">
128    <meta name="twitter:url" content="https://www.losangelesrules.com/signup/">
129    <meta name="twitter:site" content="@robrtgreene">
130    
131    <meta name="generator" content="Ghost 6.68">
132    <link rel="alternate" type="application/rss+xml" title="Los Angeles Rules" href="https://www.losangelesrules.com/latest/rss/">
133    
133<script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.71/umd/portal.min.js" data-i18n="true" data-ghost="https://www.losangelesrules.com/" data-key="fe156430e95cadb2c971969e97" data-api="https://los-angeles-rules.ghost.io/ghost/api/content/" data-locale="en" crossorigin="anonymous"></script>
133<style id="gh-members-styles">.gh-post-upgrade-cta-content,
134.gh-post-upgrade-cta {
135    display: flex;
136    flex-direction: column;
137    align-items: center;
138    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
139    text-align: center;
140    width: 100%;
141    color: #ffffff;
142    font-size: 16px;
143}
144
145.gh-post-upgrade-cta-content {
146    border-radius: 8px;
147    padding: 40px 4vw;
148}
149
150.gh-post-upgrade-cta h2 {
151    color: #ffffff;
152    font-size: 28px;
153    letter-spacing: -0.2px;
154    margin: 0;
155    padding: 0;
156}
157
158.gh-post-upgrade-cta p {
159    margin: 20px 0 0;
160    padding: 0;
161}
162
163.gh-post-upgrade-cta small {
164    font-size: 16px;
165    letter-spacing: -0.2px;
166}
167
168.gh-post-upgrade-cta a {
169    color: #ffffff;
170    cursor: pointer;
171    font-weight: 500;
172    box-shadow: none;
173    text-decoration: underline;
174}
175
176.gh-post-upgrade-cta a:hover {
177    color: #ffffff;
178    opacity: 0.8;
179    box-shadow: none;
180    text-decoration: underline;
181}
182
183.gh-post-upgrade-cta a.gh-btn {
184    display: block;
185    background: #ffffff;
186    text-decoration: none;
187    margin: 28px 0 0;
188    padding: 8px 18px;
189    border-radius: 4px;
190    font-size: 16px;
191    font-weight: 600;
192}
193
194.gh-post-upgrade-cta a.gh-btn:hover {
195    opacity: 0.92;
196}</style>
197    
198    <link href="https://www.losangelesrules.com/webmentions/receive/" rel="webmention">
199    
199<script defer src="/public/cards.min.js?v=ShRHxgy4po8zN-Wf"></script>
199
200    <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=WwnU9jw5ancNC8Gc">
201    
201<script defer src="/public/member-attribution.min.js?v=AKG4hWena9j3yX3I"></script>
201
202    
202<script defer src="/public/ghost-stats.min.js?v=vFcCUf6ZQ0Hyhc8h" data-stringify-payload="false" data-datasource="analytics_events" data-storage="localStorage" data-host="https://www.losangelesrules.com/.ghost/analytics/api/v1/page_hit"  tb_site_uuid="7c14f9c7-9fe2-4f5c-a02c-0c99e43c7e77" tb_post_uuid="undefined" tb_post_type="null" tb_member_uuid="undefined" tb_member_status="undefined" tb_gift_link=""></script>
202<style>:root {--ghost-accent-color: #1b7a2c;}</style>
203    <style>
204  /* Disables the bottom newsletter signup card entirely in Headline theme */
205  .gh-signup, 
206  .footer-cta, 
207  section[class*="signup"], 
208  div[class*="signup"] {
209    display: none !important;
210    visibility: hidden !important;
211    height: 0 !important;
212    padding: 0 !important;
213    margin: 0 !important;
214  }
215</style>
216  </head>
217  <body class=" "  data-excerpts="true">
218    
219
220
221    <main class="main flex-1">
222      
223<div class="signup-page flex flex-cc" data-image-style="right">
224    <div class="signup-page__content">
225      <a href="https://www.losangelesrules.com" class="signup-page__brand">
226          Los Angeles Rules
227      </a>
228
229      <div class="signup-page__box">
230          <h1 class="signup-page__title">Sign up</h1>
231          <p id="form-input-label" class="opacity-080">Sign up to Los Angeles Rules to get access to premium content.</p>
232          
233          <form class="subscribe-form" 
234  data-members-form="signup" data-style="">
235    <input data-members-name autocomplete="name" type="text" placeholder="Your name" 
236      aria-labelledby="form-input-label" required>
237  <input data-members-email class="" 
238    type="email" autocomplete="email" placeholder="Your email address" 
239    aria-labelledby="form-input-label" required> 
240  <button class="btn uppercase btn--brand" type="submit">
241    <span>Continue</span>
242  </button>
243  <div class="msg-success">Great! Check your inbox and click the link.</div>
244  <div class="msg-error">Sorry, something went wrong. Please try again.</div>
245</form>        <p class="m-0 mt text-center">
246          <small>Already have an account? 
247            <a href="/signin/">Sign in</a>
248          </small>
249        </p>
250      </div>
251    </div>
252  </div>
253    </main>
254    
255
256    <dialog class="notification">
257  <i class="icon icon-success notification-icon">
258  <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-circle-check" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
259  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
260  <circle cx="12" cy="12" r="9" />
261  <path d="M9 12l2 2l4 -4" />
262</svg>
263
264
265
266</i>  <i class="icon icon-error notification-icon">
267  <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-alert-octagon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
268  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
269  <path d="M8.7 3h6.6c.3 0 .5 .1 .7 .3l4.7 4.7c.2 .2 .3 .4 .3 .7v6.6c0 .3 -.1 .5 -.3 .7l-4.7 4.7c-.2 .2 -.4 .3 -.7 .3h-6.6c-.3 0 -.5 -.1 -.7 -.3l-4.7 -4.7c-.2 -.2 -.3 -.4 -.3 -.7v-6.6c0 -.3 .1 -.5 .3 -.7l4.7 -4.7c.2 -.2 .4 -.3 .7 -.3z" />
270  <line x1="12" y1="8" x2="12" y2="12" />
271  <line x1="12" y1="16" x2="12.01" y2="16" />
272</svg>
273
274
275
276</i>  <i class="icon icon-warning notification-icon">
277  <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-alert-triangle" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
278  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
279  <path d="M12 9v2m0 4v.01" />
280  <path d="M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75" />
281</svg>
282
283
284
285</i>  <p class="notification-msg signup-success">Great! You’ve successfully signed up.</p> 
286  <p class="notification-msg signin-success">Welcome back! You&#x27;ve successfully signed in.</p> 
287  <p class="notification-msg subscribe-success">You&#x27;ve successfully subscribed to Los Angeles Rules.</p> 
288  <p class="notification-msg link-expired">Your link has expired.</p> 
289  <p class="notification-msg checkout-success">Success! Check your email for magic link to sign-in.</p> 
290  <p class="notification-msg billing-success">Success! Your billing info has been updated.</p> 
291  <p class="notification-msg billing-cancel">Your billing was not updated.</p> 
292  <button class="notification-close js-notification-close" aria-label="Close" onclick="closeNotification(event.currentTarget.parentNode);">
293    <i class="icon icon-x">
294  <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-x" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
295  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
296  <line x1="18" y1="6" x2="6" y2="18" />
297  <line x1="6" y1="6" x2="18" y2="18" />
298</svg>
299</i>
299  </button>
300</dialog>
301
302      
303    
304
305      
305<script>
306    // Give the parameter a variable name
307    const qsParams = new URLSearchParams(window.location.search);
308    const isAction = qsParams.has('action');
309    const isStripe = qsParams.has('stripe');
310    const success = qsParams.get('success');
311    const action = qsParams.get('action');
312    const stripe = qsParams.get('stripe');
313
314    if (qsParams && isAction) {
315      if (success === "true") {
316        switch (action) {
317          case 'subscribe':
318            openNotification('subscribe-success');
319            break;
320          case 'signup': 
321            openNotification('signup-success');
322            break;
323          case 'signin':
324            openNotification('signin-success');
325            break;
326          default:
327            break;
328        }
329      } else {
330        openNotification('link-expired');
331      }
332    }
333
334    if (qsParams && isStripe) {
335      switch (stripe) {
336        case 'success':
337          openNotification('checkout-success');
338          break;
339        case 'billing-update-success':
340          openNotification('billing-success');
341          break;
342        case 'billing-update-cancel':
343          openNotification('billing-cancel');
344          break;
345        default:
346          break;
347      }
348    }
349
350    /**
351    * Handle Notifications
352    */
353    function openNotification(type) {
354      const notification = document.querySelector('dialog.notification');
355      if (notification) { 
356        notification.setAttribute('data-msg-type', type);
357        notification.show();
358        setTimeout(function(){ closeNotification(notification); }, 3000);
359      }
360    }
361    
362    /**
363    * Clean URI
364    */
365    function clearURI() {
366      window.history.replaceState({}, '', `${window.location.pathname}`);
367    }
368
369    function closeNotification(notification) {
370      notification.close();
371      clearURI();
372      setTimeout(function(){ notification.removeAttribute('data-msg-type') }, 500);
373    }
374  </script>
374
375
376
377    
377<script>
378  document.addEventListener("DOMContentLoaded", function() {
379    // Finds and destroys any signup footer blocks
380    const signupBlock = document.querySelector(".gh-signup") || document.querySelector(".footer-cta");
381    if (signupBlock) {
382      signupBlock.remove();
383    }
384  });
385</script>
385
386<!-- spectral web services advanced search:start -->
387<script
388  src="https://search.spectralwebservices.com/v1.0.6/sws-search.js"
389  integrity="sha384-TxqF/GtsHBsv3E7I8j4EeBWSvEkJMSRVwlot+wP1NqmVAQtn/SpQDiNmTOTBqutO"
390  crossorigin="anonymous"
391  defer></script>
391
392
393<sws-search
394  id="sws"
395  search-app="P7JLDJ3MCJ"
396  search-key="OGRjYTczMmUyNWY5YzExZDkyZTc5ODIzNWNkYThkZjQ4MTljMGQ4MTAzNWQ4NmVhYzE2MDc4OGE5YTkxOTZmOXJlc3RyaWN0SW5kaWNlcz0lNUIlMjJwb3N0cyUyMiUyQyUyMmF1dGhvcnMlMjIlMkMlMjJ0YWdzJTIyJTVEJmF0dHJpYnV0ZXNUb1JldHJpZXZlPSU1QiUyMnRpdGxlJTIyJTJDJTIydXJsJTIyJTJDJTIycHVibGlzaGVkX2F0JTIyJTJDJTIyaW1hZ2UlMjIlMkMlMjJmZWF0dXJlX2ltYWdlX2FsdCUyMiUyQyUyMmF1dGhvcnMubmFtZSUyMiUyQyUyMmF1dGhvcnMuc2x1ZyUyMiUyQyUyMnNsdWclMjIlMkMlMjJuYW1lJTIyJTJDJTIyYmlvJTIyJTJDJTIycHJvZmlsZV9pbWFnZSUyMiUyQyUyMmRlc2NyaXB0aW9uJTIyJTVEJmF0dHJpYnV0ZXNUb1NuaXBwZXQ9JTVCJTIyY29udGVudCUzQTQwJTIyJTJDJTIyYmlvJTNBNTAlMjIlMkMlMjJkZXNjcmlwdGlvbiUzQTUwJTIyJTVE"
397  css-url="https://search.spectralwebservices.com/v1.0.6/sws-search.css"
398  css-integrity="sha384-Dni8jcVVYTBpHaGKtnHQQ00GcQqn6460ftuWoCAeDnkttO0B5MhW8oyJHVbPammX"
399  title="Search the site"
400  theme="auto"
401  search-as-you-type="true">
402</sws-search>
403
404<script>
405  // Open this search when the theme's Ghost search button is clicked, and stop
406  // Ghost's own search from also firing. Capture phase + composedPath keep it
407  // robust and avoid swallowing the embed's own modal clicks.
408  document.addEventListener('click', function (e) {
409    var target = e.composedPath()[0];
410    if (!target || !target.closest) return;
411    if (!target.closest('[data-ghost-search]')) return;
412    e.stopImmediatePropagation();
413    e.preventDefault();
414    document.getElementById('sws')?.open();
415  }, true);
416</script>
416
417<!-- spectral web services advanced search:end -->
418  </body>
419</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.