PageSourceSearch

https://penandthepad.com/about-us/

html penandthepad.com collected 2026-10-02 04:37:07 UTC 174,067 bytes, 2,451 lines download raw bytes

1<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" type="image/x-icon" href="https://penandthepad.com/favicon.ico"><link rel="icon" type="image/png" sizes="16x16" href="https://penandthepad.com/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="https://penandthepad.com/favicon-32x32.png"><link rel="icon" type="image/png" sizes="96x96" href="https://penandthepad.com/favicon-96x96.png"><link rel="icon" type="image/png" sizes="192x192" href="https://penandthepad.com/favicon-192x192.png"><link rel="preconnect" href="https://capi.connatix.com" crossorigin=""><link rel="preconnect" href="https://cd.connatix.com" crossorigin=""><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""><link rel="preconnect" href="https://cmp.inmobi.com"><link rel="preload" as="image" fetchpriority="high" href="https://penandthepad.com/astrostatic/3a22e5c5/_image/?href=%2F_astro%2Fpenandthepad.CAcBzb0Z.svg&w=205&h=70&f=svg"><link rel="preload" href="https://cmp.inmobi.com/choice/vPn77x7pBG57Y/penandthepad.com/choice.js?tag_version=V3" as="script" data-no-early-hint="">
1<script async type="text/javascript" src="https://cmp.inmobi.com/choice/vPn77x7pBG57Y/penandthepad.com/choice.js?tag_version=V3"></script>
1<script>(function(){const url = "https://cmp.inmobi.com/choice/vPn77x7pBG57Y/penandthepad.com/choice.js?tag_version=V3";
2const iabVendorsUrl = "https://cmp.inmobi.com/GVL-v3/vendor-list.json";
3const googleAtpUrl = "https://cmp.inmobi.com/tcfv2/google-atp-list.json";
4
5(function() {
6  var uspTries = 0;
7  var uspTriesLimit = 3;
8  
9  function makeStub() {
10    var TCF_LOCATOR_NAME = '__tcfapiLocator';
11    var queue = [];
12    var win = window;
13    var cmpFrame;
14
15    function addFrame() {
16      var doc = win.document;
17      var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]);
18
19      if (!otherCMP) {
20        if (doc.body) {
21          var iframe = doc.createElement('iframe');
22
23          iframe.style.cssText = 'display:none';
24          iframe.name = TCF_LOCATOR_NAME;
25          doc.body.appendChild(iframe);
26        } else {
27          setTimeout(addFrame, 5);
28        }
29      }
30      return !otherCMP;
31    }
32
33    function tcfAPIHandler() {
34      var gdprApplies;
35      var args = arguments;
36
37      if (!args.length) {
38        return queue;
39      } else if (args[0] === 'setGdprApplies') {
40        if (
41          args.length > 3 &&
42          args[2] === 2 &&
43          typeof args[3] === 'boolean'
44        ) {
45          gdprApplies = args[3];
46          if (typeof args[2] === 'function') {
47            args[2]('set', true);
48          }
49        }
50      } else if (args[0] === 'ping') {
51        var retr = {
52          gdprApplies: gdprApplies,
53          cmpLoaded: false,
54          cmpStatus: 'stub'
55        };
56
57        if (typeof args[2] === 'function') {
58          args[2](retr);
59        }
60      } else {
61        if(args[0] === 'init' && typeof args[3] === 'object') {
62          args[3] = Object.assign(args[3], { tag_version: 'V3' });
63        }
64        queue.push(args);
65      }
66    }
67
68    function postMessageEventHandler(event) {
69      var msgIsString = typeof event.data === 'string';
70      var json = {};
71
72      try {
73        if (msgIsString) {
74          json = JSON.parse(event.data);
75        } else {
76          json = event.data;
77        }
78      } catch (ignore) {}
79
80      var payload = json.__tcfapiCall;
81
82      if (payload) {
83        window.__tcfapi(
84          payload.command,
85          payload.version,
86          function(retValue, success) {
87            var returnMsg = {
88              __tcfapiReturn: {
89                returnValue: retValue,
90                success: success,
91                callId: payload.callId
92              }
93            };
94            if (msgIsString) {
95              returnMsg = JSON.stringify(returnMsg);
96            }
97            if (event && event.source && event.source.postMessage) {
98              event.source.postMessage(returnMsg, '*');
99            }
100          },
101          payload.parameter
102        );
103      }
104    }
105
106    while (win) {
107      try {
108        if (win.frames[TCF_LOCATOR_NAME]) {
109          cmpFrame = win;
110          break;
111        }
112      } catch (ignore) {}
113
114      if (win === window.top) {
115        break;
116      }
117      win = win.parent;
118    }
119    if (!cmpFrame) {
120      addFrame();
121      win.__tcfapi = tcfAPIHandler;
122      win.addEventListener('message', postMessageEventHandler, false);
123    }
124  };
125
126  makeStub();
127
128  function makeGppStub() {
129    const CMP_ID = 10;
130    const SUPPORTED_APIS = [
131      '2:tcfeuv2',
132      '6:uspv1',
133      '7:usnatv1',
134      '8:usca',
135      '9:usvav1',
136      '10:uscov1',
137      '11:usutv1',
138      '12:usctv1'
139    ];
140
141    window.__gpp_addFrame = function (n) {
142      if (!window.frames[n]) {
143        if (document.body) {
144          var i = document.createElement("iframe");
145          i.style.cssText = "display:none";
146          i.name = n;
147          document.body.appendChild(i);
148        } else {
149          window.setTimeout(window.__gpp_addFrame, 10, n);
150        }
151      }
152    };
153    window.__gpp_stub = function () {
154      var b = arguments;
155      __gpp.queue = __gpp.queue || [];
156      __gpp.events = __gpp.events || [];
157
158      if (!b.length || (b.length == 1 && b[0] == "queue")) {
159        return __gpp.queue;
160      }
161
162      if (b.length == 1 && b[0] == "events") {
163        return __gpp.events;
164      }
165
166      var cmd = b[0];
167      var clb = b.length > 1 ? b[1] : null;
168      var par = b.length > 2 ? b[2] : null;
169      if (cmd === "ping") {
170        clb(
171          {
172            gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1”
173            cmpStatus: "stub", // possible values: stub, loading, loaded, error
174            cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled
175            signalStatus: "not ready", // possible values: not ready, ready
176            supportedAPIs: SUPPORTED_APIS, // list of supported APIs
177            cmpId: CMP_ID, // IAB assigned CMP ID, may be 0 during stub/loading
178            sectionList: [],
179            applicableSections: [-1],
180            gppString: "",
181            parsedSections: {},
182          },
183          true
184        );
185      } else if (cmd === "addEventListener") {
186        if (!("lastId" in __gpp)) {
187          __gpp.lastId = 0;
188        }
189        __gpp.lastId++;
190        var lnr = __gpp.lastId;
191        __gpp.events.push({
192          id: lnr,
193          callback: clb,
194          parameter: par,
195        });
196        clb(
197          {
198            eventName: "listenerRegistered",
199            listenerId: lnr, // Registered ID of the listener
200            data: true, // positive signal
201            pingData: {
202              gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1”
203              cmpStatus: "stub", // possible values: stub, loading, loaded, error
204              cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled
205              signalStatus: "not ready", // possible values: not ready, ready
206              supportedAPIs: SUPPORTED_APIS, // list of supported APIs
207              cmpId: CMP_ID, // list of supported APIs
208              sectionList: [],
209              applicableSections: [-1],
210              gppString: "",
211              parsedSections: {},
212            },
213          },
214          true
215        );
216      } else if (cmd === "removeEventListener") {
217        var success = false;
218        for (var i = 0; i < __gpp.events.length; i++) {
219          if (__gpp.events[i].id == par) {
220            __gpp.events.splice(i, 1);
221            success = true;
222            break;
223          }
224        }
225        clb(
226          {
227            eventName: "listenerRemoved",
228            listenerId: par, // Registered ID of the listener
229            data: success, // status info
230            pingData: {
231              gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1”
232              cmpStatus: "stub", // possible values: stub, loading, loaded, error
233              cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled
234              signalStatus: "not ready", // possible values: not ready, ready
235              supportedAPIs: SUPPORTED_APIS, // list of supported APIs
236              cmpId: CMP_ID, // CMP ID
237              sectionList: [],
238              applicableSections: [-1],
239              gppString: "",
240              parsedSections: {},
241            },
242          },
243          true
244        );
245      } else if (cmd === "hasSection") {
246        clb(false, true);
247      } else if (cmd === "getSection" || cmd === "getField") {
248        clb(null, true);
249      }
250      //queue all other commands
251      else {
252        __gpp.queue.push([].slice.apply(b));
253      }
254    };
255    window.__gpp_msghandler = function (event) {
256      var msgIsString = typeof event.data === "string";
257      try {
258        var json = msgIsString ? JSON.parse(event.data) : event.data;
259      } catch (e) {
260        var json = null;
261      }
262      if (typeof json === "object" && json !== null && "__gppCall" in json) {
263        var i = json.__gppCall;
264        window.__gpp(
265          i.command,
266          function (retValue, success) {
267            var returnMsg = {
268              __gppReturn: {
269                returnValue: retValue,
270                success: success,
271                callId: i.callId,
272              },
273            };
274            event.source.postMessage(msgIsString ? JSON.stringify(returnMsg) : returnMsg, "*");
275          },
276          "parameter" in i ? i.parameter : null,
277          "version" in i ? i.version : "1.1"
278        );
279      }
280    };
281    if (!("__gpp" in window) || typeof window.__gpp !== "function") {
282      window.__gpp = window.__gpp_stub;
283      window.addEventListener("message", window.__gpp_msghandler, false);
284      window.__gpp_addFrame("__gppLocator");
285    }
286  };
287
288  makeGppStub();
289
290  var uspStubFunction = function() {
291    var arg = arguments;
292    if (typeof window.__uspapi !== uspStubFunction) {
293      setTimeout(function() {
294        if (typeof window.__uspapi !== 'undefined') {
295          window.__uspapi.apply(window.__uspapi, arg);
296        }
297      }, 500);
298    }
299  };
300
301  var checkIfUspIsReady = function() {
302    uspTries++;
303    if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) {
304      console.warn('USP is not accessible');
305    } else {
306      clearInterval(uspInterval);
307    }
308  };
309
310  if (typeof window.__uspapi === 'undefined') {
311    window.__uspapi = uspStubFunction;
312    var uspInterval = setInterval(checkIfUspIsReady, 6000);
313  }
314
315  /**
316   * DataLayer Push & CCPA Support
317   *
318   * Version 2.0.7
319   */
320  (async function () {
321    //URLs need to be externalized based on environments, during build update.
322    var get_iab_vendors_url = iabVendorsUrl;
323    var get_google_atp_url = googleAtpUrl;
324    var iab_vendors, iab_vendor_ids, iab_vendor_names;
325    var google_vendors, google_vendor_ids, google_vendor_names;
326    var google_vendors_arr = [],
327        google_vendor_ids_arr = [],
328        google_vendor_names_arr = [];
329    var iab_vendors_arr = [],
330        iab_vendor_ids_arr = [],
331        iab_vendor_names_arr = [];
332    var non_iab_vendors, non_iab_vendor_ids, non_iab_vendor_names;
333    var non_iab_vendors_arr = [],
334        non_iab_vendor_ids_arr = [],
335        non_iab_vendor_names_arr = [];
336    var publisher_consents, publisher_legitimate_interests;
337    var purpose_consents, purpose_legitimate_interests;
338
339    function resultToList(a) {
340      var b = ",";
341      if (a && typeof a === 'object') {
342        for (var i in a) {
343          if (a[i]) {
344            b += i + ",";
345          }
346        }
347      }
348      return b;
349    }
350
351    /**
352     * Get a full list of Non-IAB Vendors, specific to the Quantcast Universal Tag ID, using tcfapi
353     */
354    function vendors_getNonIABVendorList() {
355      window.__tcfapi("getConfig", 2, function (retObj) {
356        if (retObj && retObj.hasOwnProperty("nonIabVendorsInfo")) {
357          if (
358            retObj.nonIabVendorsInfo && retObj.nonIabVendorsInfo.hasOwnProperty(
359              "nonIabVendorList",
360            )
361          ) {
362            non_iab_vendors =
363              retObj.nonIabVendorsInfo.nonIabVendorList;
364            // Dont assume array key = vendor id, set key as vendor id with iab_vendors[i].id
365            Object.keys(non_iab_vendors).forEach(function (i) {
366              non_iab_vendors_arr[non_iab_vendors[i].vendorId] =
367                non_iab_vendors[i].name;
368            });
369          }
370        }
371      });
372    }
373
374    /**
375     * Get a full list of IAB Vendors.
376     */
377    function vendors_getIABVendorList() {
378      var xhttp = new XMLHttpRequest();
379      xhttp.onreadystatechange = function () {
380        if (this.readyState == 4 && this.status == 200) {
381          var res = JSON.parse(this.responseText);
382          if (res && res.hasOwnProperty("vendors")) {
383            iab_vendors = res.vendors;
384
385            // Dont assume array key = vendor id, set key as vendor id with iab_vendors[i].id
386            Object.keys(iab_vendors).forEach(function (i) {
387              iab_vendors_arr[iab_vendors[i].id] =
388                iab_vendors[i].name;
389            });
390          }
391        }
392      };
393      xhttp.open("GET", get_iab_vendors_url, true);
394      xhttp.send();
395    }
396
397    /**
398     * Get a full list of google atp list
399     */
400    function vendors_getGoogleVendorList() {
401      var xhttp = new XMLHttpRequest();
402      xhttp.onreadystatechange = function () {
403        if (this.readyState == 4 && this.status == 200) {
404          google_vendors = JSON.parse(this.responseText);
405          google_vendors.forEach(function (vendor) {
406            google_vendors_arr[vendor.provider_id] =
407              vendor.provider_name;
408          });
409        }
410      };
411      xhttp.open("GET", get_google_atp_url, true);
412      xhttp.send();
413    }
414
415    /**
416     * CMP Loaded.
417     *
418     * Push __cmpLoaded event to the data layer.
419     */
420    function dlSend_tcLoaded(tcData) {
421      window.dataLayer = window.dataLayer || [];
422      window.dataLayer.push({
423        event: "__cmpLoaded",
424        __cmpLoaded: true,
425        gdpr: tcData ? tcData.gdprApplies : false,
426      });
427    }
428
429    /**
430     * IAB Vendors.
431     *
432     * Push __cmpIABConsents event to the datalayer, along with iab vendor consent ids.
433     */
434    function dlSend_consentData(tcData) {
435      window.dataLayer = window.dataLayer || [];
436      iab_vendor_names_arr = [];
437      iab_vendor_ids_arr = [];
438      non_iab_vendor_names_arr = [];
439      non_iab_vendor_ids_arr = [];
440      google_vendor_names_arr = [];
441      google_vendor_ids_arr = [];
442
443      if (tcData && tcData.hasOwnProperty("publisher")) {
444        if (tcData.publisher && tcData.publisher.hasOwnProperty("consents")) {
445          publisher_consents = resultToList(
446            tcData.publisher ? tcData.publisher.consents : null,
447          );
448        }
449        publisher_legitimate_interests = resultToList(
450          tcData.publisher ? tcData.publisher.legitimateInterests : null,
451        );
452      }
453
454      if (tcData && tcData.hasOwnProperty("purpose")) {
455        if (tcData.purpose && tcData.purpose.hasOwnProperty("consents")) {
456          purpose_consents = resultToList(tcData.purpose ? tcData.purpose.consents : null);
457        }
458        purpose_legitimate_interests = resultToList(
459          tcData.purpose ? tcData.purpose.legitimateInterests : null,
460        );
461      }
462
463      // Run this in an interval (every 0.1s) just in case we are still waiting
464      // on the return with our iab_vendors list calls, bail after 10 seconds
465      var cnt = 0;
466      var interval = setInterval(function () {
467        cnt += 1;
468
469        if (cnt === 100) {
470          clearInterval(interval);
471        }
472
473        if (iab_vendors) {
474          clearInterval(interval);
475
476          if (tcData ? tcData.gdprApplies : false) {
477            // Create name & id arrays of iab vendors with consent.
478            if (tcData && tcData.hasOwnProperty("vendor") && tcData.vendor && tcData.vendor.consents) {
479              Object.keys(tcData.vendor.consents).forEach(
480                function (vendorId) {
481                  if (
482                    (tcData.vendor && tcData.vendor.consents ? tcData.vendor.consents[vendorId] : false) ||
483                    !tcData.gdprApplies
484                  ) {
485                    iab_vendor_names_arr[vendorId] =
486                      iab_vendors_arr[vendorId];
487                    iab_vendor_ids_arr[vendorId] = vendorId;
488                  }
489                },
490              );
491            }
492          } else {
493            // GDPR does not apply, add all vendor names/ids
494            iab_vendor_names_arr = iab_vendors_arr;
495            iab_vendors_arr.forEach(
496              function (vendorName, vendorId) {
497                iab_vendor_ids_arr[vendorId] = vendorId;
498              },
499            );
500          }
501
502          if (tcData && tcData.addtlConsent && google_vendors_arr) {
503            // Create name and id arrays of google vendors with consent.
504            // addtlConsent: "1~39.43.46.55.61.
505            // 1~ is the version and the rest are the decoded ids
506            var addtlConsentParts = (tcData.addtlConsent || "").split("1~");
507            if (addtlConsentParts.length > 1) {
508              google_vendor_ids_arr = addtlConsentParts[1].split(".");
509            }
510            google_vendor_ids_arr &&
511              google_vendor_ids_arr.forEach(function (google_id) {
512                google_vendor_names_arr.push(
513                  google_vendors_arr[google_id],
514                );
515              });
516          }
517
518          // Non IAB Vendors
519          window.__tcfapi(
520            "getNonIABVendorConsents",
521            2,
522            function (nonIabConsent, nonIabSuccess) {
523              if (nonIabSuccess) {
524                if (nonIabConsent.gdprApplies) {
525                  // Create name & id arrays of non iab vendors with consent.
526                  nonIabConsent.nonIabVendorConsents &&
527                    Object.keys(
528                      nonIabConsent.nonIabVendorConsents,
529                    ).forEach(function (vendorId) {
530                      if (
531                        nonIabConsent
532                          .nonIabVendorConsents[
533                          vendorId
534                        ] ||
535                        !nonIabConsent.gdprApplies
536                      ) {
537                        non_iab_vendor_names_arr[
538                          vendorId
539                        ] =
540                          non_iab_vendors_arr[
541                            vendorId
542                          ];
543                        non_iab_vendor_ids_arr[
544                          vendorId
545                        ] = vendorId;
546                      }
547                    });
548                } else {
549                  // GDPR does not apply, add all non iab vendor names/ids
550                  non_iab_vendor_names_arr =
551                    non_iab_vendors_arr;
552                  non_iab_vendors_arr.forEach(
553                    function (vendorName, vendorId) {
554                      non_iab_vendor_ids_arr[vendorId] =
555                        vendorId;
556                    },
557                  );
558                }
559              }
560
561              // Join our array values, skipping empty items and joing them with a delimiter
562              iab_vendor_names = iab_vendor_names_arr
563                .filter(Boolean)
564                .join("|");
565              iab_vendor_ids = iab_vendor_ids_arr
566                .filter(Boolean)
567                .join(",");
568              google_vendor_names = google_vendor_names_arr
569                .filter(Boolean)
570                .join("|");
571              google_vendor_ids = google_vendor_ids_arr
572                .filter(Boolean)
573                .join("|");
574              non_iab_vendor_names = non_iab_vendor_names_arr
575                .filter(Boolean)
576                .join("|");
577              non_iab_vendor_ids = non_iab_vendor_ids_arr
578                .filter(Boolean)
579                .join(",");
580
581              // Push __cmpIABConsents signals to the data layer.
582              window.dataLayer.push({
583                event: "__cmpConsents",
584                __cmpConsents: {
585                  iabVendorConsentIds: iab_vendor_ids,
586                  iabVendorsWithConsent: iab_vendor_names,
587                  nonIABVendorConsentIds: non_iab_vendor_ids,
588                  nonIABVendorsWithConsent:
589                    non_iab_vendor_names,
590                  googleVendorConsentIds: google_vendor_ids,
591                  googleVendorsWithConsent:
592                    google_vendor_names,
593                  gdpr: tcData ? tcData.gdprApplies : false,
594                  publisherConsents: publisher_consents,
595                  publisherLegitimateInterests:
596                    publisher_legitimate_interests,
597                  purposeConsents: purpose_consents,
598                  purposeLegitimateInterests:
599                    purpose_legitimate_interests,
600                },
601              });
602            },
603          );
604        }
605      }, 100);
606    }
607
608    /**
609     * CCPA footer message.
610     */
611    function ccpa_footerMsg(tcData) {
612      window.__uspapi("uspPing", 1, function (obj, status) {
613        var footer_msg = document.getElementById("choice-footer-msg"); // get the footer container for our CCPA message
614
615        if (status && obj.mode.includes("USP") && footer_msg !== null) {
616          footer_msg.innerHTML =
617            footer_msg.innerHTML +
618            "We use cookies" +
619            " and other data collection technologies" +
620            " to provide the best experience for our customers. You may request" +
621            " that your data not be shared with third parties here: " +
622            '<a href="#" onclick="window.__uspapi(\'displayUspUi\');"' +
623            ">Do Not Sell My Data</a>" +
624            ".";
625
626          // Add the 'ccpa-msg-added' class to the container for post message add styling.
627          footer_msg.classList.add("ccpa-msg-added");
628
629          window.__uspapi("setUspDftData", 1, function (obj, status) {
630            if (!status) {
631              console.log("Error: USP string not updated!");
632            }
633          });
634        }
635      });
636    }
637
638    // Only get the IAB and Non-IAB vendor lists if the the Data layer push functionality
639    // is enabled, otherwise we do not need the vendor lists.
640    window.__tcfapi(
641      "addEventListener",
642      2,
643      function (getConfig, listenerSuccess) {
644        vendors_getIABVendorList(); // Get global IAB vendor list
645        vendors_getGoogleVendorList(); // Get google vendor list
646        vendors_getNonIABVendorList(); // Get UTID specific Non-IAB vendors
647      },
648    );
649
650    // CCPA
651    ccpa_footerMsg();
652
653    // Add our main listener.
654    window.__tcfapi(
655      "addEventListener",
656      2,
657      function (tcData, listenerSuccess) {
658        if (listenerSuccess) {
659          /**
660           * User Visits:
661           * 1st visit/no cookie = 'cmpuishown' called and then 'useractioncomplete' after user make their selection
662           * Repeat visit/has cookie = only 'tcloaded' is called as the UI does not show unless the user clicks to show
663           */
664
665          switch (tcData ? tcData.eventStatus : null) {
666            case "cmpuishown":
667              // Data Layer
668              dlSend_tcLoaded(tcData);
669              break;
670
671            case "tcloaded":
672              // Data Layer
673              if (tcData ? tcData.gdprApplies : false) {
674                dlSend_tcLoaded(tcData);
675                dlSend_consentData(tcData);
676              }
677              break;
678
679            case "useractioncomplete":
680              // Data Layer
681              dlSend_consentData(tcData);
682              break;
683          }
684        }
685      },
686    );
687  })();
688})();
689})();</script>
689    <link rel="apple-touch-icon" sizes="180x180" href="https://penandthepad.com/apple-touch-icon.png">     <link rel="manifest" href="https://penandthepad.com/site.webmanifest">     <link rel="alternate" type="application/atom+xml" title="Pen and the Pad » Feed" href="https://penandthepad.com/feed/"><style>
690    @layer properties, theme, base, components, utilities;
691</style><style>/* cyrillic-ext */
692@font-face {
693    font-family: "IBM Plex Mono";
694    font-style: italic;
695    font-weight: 100;
696    font-display: swap;
697    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdvp-8_FtFg95o.woff2)
698        format("woff2");
699    unicode-range:
700        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
701}
702/* cyrillic */
703@font-face {
704    font-family: "IBM Plex Mono";
705    font-style: italic;
706    font-weight: 100;
707    font-display: swap;
708    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdmp-8_FtFg95o.woff2)
709        format("woff2");
710    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
711}
712/* vietnamese */
713@font-face {
714    font-family: "IBM Plex Mono";
715    font-style: italic;
716    font-weight: 100;
717    font-display: swap;
718    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdtp-8_FtFg95o.woff2)
719        format("woff2");
720    unicode-range:
721        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
722        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
723        U+1EA0-1EF9, U+20AB;
724}
725/* latin-ext */
726@font-face {
727    font-family: "IBM Plex Mono";
728    font-style: italic;
729    font-weight: 100;
730    font-display: swap;
731    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdsp-8_FtFg95o.woff2)
732        format("woff2");
733    unicode-range:
734        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
735        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
736        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
737}
738/* latin */
739@font-face {
740    font-family: "IBM Plex Mono";
741    font-style: italic;
742    font-weight: 100;
743    font-display: swap;
744    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdip-8_FtFg.woff2)
745        format("woff2");
746    unicode-range:
747        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
748        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
749        U+2212, U+2215, U+FEFF, U+FFFD;
750}
751/* cyrillic-ext */
752@font-face {
753    font-family: "IBM Plex Mono";
754    font-style: italic;
755    font-weight: 200;
756    font-display: swap;
757    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1jcoQPttoz6Pz.woff2)
758        format("woff2");
759    unicode-range:
760        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
761}
762/* cyrillic */
763@font-face {
764    font-family: "IBM Plex Mono";
765    font-style: italic;
766    font-weight: 200;
767    font-display: swap;
768    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1hMoQPttoz6Pz.woff2)
769        format("woff2");
770    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
771}
772/* vietnamese */
773@font-face {
774    font-family: "IBM Plex Mono";
775    font-style: italic;
776    font-weight: 200;
777    font-display: swap;
778    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1j8oQPttoz6Pz.woff2)
779        format("woff2");
780    unicode-range:
781        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
782        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
783        U+1EA0-1EF9, U+20AB;
784}
785/* latin-ext */
786@font-face {
787    font-family: "IBM Plex Mono";
788    font-style: italic;
789    font-weight: 200;
790    font-display: swap;
791    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1jsoQPttoz6Pz.woff2)
792        format("woff2");
793    unicode-range:
794        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
795        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
796        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
797}
798/* latin */
799@font-face {
800    font-family: "IBM Plex Mono";
801    font-style: italic;
802    font-weight: 200;
803    font-display: swap;
804    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1gMoQPttozw.woff2)
805        format("woff2");
806    unicode-range:
807        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
808        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
809        U+2212, U+2215, U+FEFF, U+FFFD;
810}
811/* cyrillic-ext */
812@font-face {
813    font-family: "IBM Plex Mono";
814    font-style: italic;
815    font-weight: 300;
816    font-display: swap;
817    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1jcoQPttoz6Pz.woff2)
818        format("woff2");
819    unicode-range:
820        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
821}
822/* cyrillic */
823@font-face {
824    font-family: "IBM Plex Mono";
825    font-style: italic;
826    font-weight: 300;
827    font-display: swap;
828    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1hMoQPttoz6Pz.woff2)
829        format("woff2");
830    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
831}
832/* vietnamese */
833@font-face {
834    font-family: "IBM Plex Mono";
835    font-style: italic;
836    font-weight: 300;
837    font-display: swap;
838    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1j8oQPttoz6Pz.woff2)
839        format("woff2");
840    unicode-range:
841        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
842        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
843        U+1EA0-1EF9, U+20AB;
844}
845/* latin-ext */
846@font-face {
847    font-family: "IBM Plex Mono";
848    font-style: italic;
849    font-weight: 300;
850    font-display: swap;
851    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1jsoQPttoz6Pz.woff2)
852        format("woff2");
853    unicode-range:
854        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
855        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
856        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
857}
858/* latin */
859@font-face {
860    font-family: "IBM Plex Mono";
861    font-style: italic;
862    font-weight: 300;
863    font-display: swap;
864    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1gMoQPttozw.woff2)
865        format("woff2");
866    unicode-range:
867        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
868        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
869        U+2212, U+2215, U+FEFF, U+FFFD;
870}
871/* cyrillic-ext */
872@font-face {
873    font-family: "IBM Plex Mono";
874    font-style: italic;
875    font-weight: 400;
876    font-display: swap;
877    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa2HdgregdFOFh.woff2)
878        format("woff2");
879    unicode-range:
880        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
881}
882/* cyrillic */
883@font-face {
884    font-family: "IBM Plex Mono";
885    font-style: italic;
886    font-weight: 400;
887    font-display: swap;
888    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa0XdgregdFOFh.woff2)
889        format("woff2");
890    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
891}
892/* vietnamese */
893@font-face {
894    font-family: "IBM Plex Mono";
895    font-style: italic;
896    font-weight: 400;
897    font-display: swap;
898    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa2ndgregdFOFh.woff2)
899        format("woff2");
900    unicode-range:
901        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
902        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
903        U+1EA0-1EF9, U+20AB;
904}
905/* latin-ext */
906@font-face {
907    font-family: "IBM Plex Mono";
908    font-style: italic;
909    font-weight: 400;
910    font-display: swap;
911    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa23dgregdFOFh.woff2)
912        format("woff2");
913    unicode-range:
914        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
915        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
916        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
917}
918/* latin */
919@font-face {
920    font-family: "IBM Plex Mono";
921    font-style: italic;
922    font-weight: 400;
923    font-display: swap;
924    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa1XdgregdFA.woff2)
925        format("woff2");
926    unicode-range:
927        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
928        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
929        U+2212, U+2215, U+FEFF, U+FFFD;
930}
931/* cyrillic-ext */
932@font-face {
933    font-family: "IBM Plex Mono";
934    font-style: italic;
935    font-weight: 500;
936    font-display: swap;
937    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1jcoQPttoz6Pz.woff2)
938        format("woff2");
939    unicode-range:
940        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
941}
942/* cyrillic */
943@font-face {
944    font-family: "IBM Plex Mono";
945    font-style: italic;
946    font-weight: 500;
947    font-display: swap;
948    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1hMoQPttoz6Pz.woff2)
949        format("woff2");
950    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
951}
952/* vietnamese */
953@font-face {
954    font-family: "IBM Plex Mono";
955    font-style: italic;
956    font-weight: 500;
957    font-display: swap;
958    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1j8oQPttoz6Pz.woff2)
959        format("woff2");
960    unicode-range:
961        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
962        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
963        U+1EA0-1EF9, U+20AB;
964}
965/* latin-ext */
966@font-face {
967    font-family: "IBM Plex Mono";
968    font-style: italic;
969    font-weight: 500;
970    font-display: swap;
971    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1jsoQPttoz6Pz.woff2)
972        format("woff2");
973    unicode-range:
974        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
975        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
976        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
977}
978/* latin */
979@font-face {
980    font-family: "IBM Plex Mono";
981    font-style: italic;
982    font-weight: 500;
983    font-display: swap;
984    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1gMoQPttozw.woff2)
985        format("woff2");
986    unicode-range:
987        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
988        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
989        U+2212, U+2215, U+FEFF, U+FFFD;
990}
991/* cyrillic-ext */
992@font-face {
993    font-family: "IBM Plex Mono";
994    font-style: italic;
995    font-weight: 600;
996    font-display: swap;
997    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1jcoQPttoz6Pz.woff2)
998        format("woff2");
999    unicode-range:
1000        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1001}
1002/* cyrillic */
1003@font-face {
1004    font-family: "IBM Plex Mono";
1005    font-style: italic;
1006    font-weight: 600;
1007    font-display: swap;
1008    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1hMoQPttoz6Pz.woff2)
1009        format("woff2");
1010    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1011}
1012/* vietnamese */
1013@font-face {
1014    font-family: "IBM Plex Mono";
1015    font-style: italic;
1016    font-weight: 600;
1017    font-display: swap;
1018    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1j8oQPttoz6Pz.woff2)
1019        format("woff2");
1020    unicode-range:
1021        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1022        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1023        U+1EA0-1EF9, U+20AB;
1024}
1025/* latin-ext */
1026@font-face {
1027    font-family: "IBM Plex Mono";
1028    font-style: italic;
1029    font-weight: 600;
1030    font-display: swap;
1031    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1jsoQPttoz6Pz.woff2)
1032        format("woff2");
1033    unicode-range:
1034        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1035        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1036        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1037}
1038/* latin */
1039@font-face {
1040    font-family: "IBM Plex Mono";
1041    font-style: italic;
1042    font-weight: 600;
1043    font-display: swap;
1044    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1gMoQPttozw.woff2)
1045        format("woff2");
1046    unicode-range:
1047        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1048        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1049        U+2212, U+2215, U+FEFF, U+FFFD;
1050}
1051/* cyrillic-ext */
1052@font-face {
1053    font-family: "IBM Plex Mono";
1054    font-style: italic;
1055    font-weight: 700;
1056    font-display: swap;
1057    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1jcoQPttoz6Pz.woff2)
1058        format("woff2");
1059    unicode-range:
1060        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1061}
1062/* cyrillic */
1063@font-face {
1064    font-family: "IBM Plex Mono";
1065    font-style: italic;
1066    font-weight: 700;
1067    font-display: swap;
1068    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1hMoQPttoz6Pz.woff2)
1069        format("woff2");
1070    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1071}
1072/* vietnamese */
1073@font-face {
1074    font-family: "IBM Plex Mono";
1075    font-style: italic;
1076    font-weight: 700;
1077    font-display: swap;
1078    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1j8oQPttoz6Pz.woff2)
1079        format("woff2");
1080    unicode-range:
1081        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1082        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1083        U+1EA0-1EF9, U+20AB;
1084}
1085/* latin-ext */
1086@font-face {
1087    font-family: "IBM Plex Mono";
1088    font-style: italic;
1089    font-weight: 700;
1090    font-display: swap;
1091    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1jsoQPttoz6Pz.woff2)
1092        format("woff2");
1093    unicode-range:
1094        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1095        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1096        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1097}
1098/* latin */
1099@font-face {
1100    font-family: "IBM Plex Mono";
1101    font-style: italic;
1102    font-weight: 700;
1103    font-display: swap;
1104    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1gMoQPttozw.woff2)
1105        format("woff2");
1106    unicode-range:
1107        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1108        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1109        U+2212, U+2215, U+FEFF, U+FFFD;
1110}
1111/* cyrillic-ext */
1112@font-face {
1113    font-family: "IBM Plex Mono";
1114    font-style: normal;
1115    font-weight: 100;
1116    font-display: swap;
1117    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa2HdgregdFOFh.woff2)
1118        format("woff2");
1119    unicode-range:
1120        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1121}
1122/* cyrillic */
1123@font-face {
1124    font-family: "IBM Plex Mono";
1125    font-style: normal;
1126    font-weight: 100;
1127    font-display: swap;
1128    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa0XdgregdFOFh.woff2)
1129        format("woff2");
1130    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1131}
1132/* vietnamese */
1133@font-face {
1134    font-family: "IBM Plex Mono";
1135    font-style: normal;
1136    font-weight: 100;
1137    font-display: swap;
1138    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa2ndgregdFOFh.woff2)
1139        format("woff2");
1140    unicode-range:
1141        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1142        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1143        U+1EA0-1EF9, U+20AB;
1144}
1145/* latin-ext */
1146@font-face {
1147    font-family: "IBM Plex Mono";
1148    font-style: normal;
1149    font-weight: 100;
1150    font-display: swap;
1151    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa23dgregdFOFh.woff2)
1152        format("woff2");
1153    unicode-range:
1154        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1155        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1156        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1157}
1158/* latin */
1159@font-face {
1160    font-family: "IBM Plex Mono";
1161    font-style: normal;
1162    font-weight: 100;
1163    font-display: swap;
1164    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa1XdgregdFA.woff2)
1165        format("woff2");
1166    unicode-range:
1167        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1168        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1169        U+2212, U+2215, U+FEFF, U+FFFD;
1170}
1171/* cyrillic-ext */
1172@font-face {
1173    font-family: "IBM Plex Mono";
1174    font-style: normal;
1175    font-weight: 200;
1176    font-display: swap;
1177    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwl1FgsAXHNlYzg.woff2)
1178        format("woff2");
1179    unicode-range:
1180        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1181}
1182/* cyrillic */
1183@font-face {
1184    font-family: "IBM Plex Mono";
1185    font-style: normal;
1186    font-weight: 200;
1187    font-display: swap;
1188    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwlRFgsAXHNlYzg.woff2)
1189        format("woff2");
1190    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1191}
1192/* vietnamese */
1193@font-face {
1194    font-family: "IBM Plex Mono";
1195    font-style: normal;
1196    font-weight: 200;
1197    font-display: swap;
1198    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwl9FgsAXHNlYzg.woff2)
1199        format("woff2");
1200    unicode-range:
1201        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1202        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1203        U+1EA0-1EF9, U+20AB;
1204}
1205/* latin-ext */
1206@font-face {
1207    font-family: "IBM Plex Mono";
1208    font-style: normal;
1209    font-weight: 200;
1210    font-display: swap;
1211    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwl5FgsAXHNlYzg.woff2)
1212        format("woff2");
1213    unicode-range:
1214        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1215        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1216        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1217}
1218/* latin */
1219@font-face {
1220    font-family: "IBM Plex Mono";
1221    font-style: normal;
1222    font-weight: 200;
1223    font-display: swap;
1224    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwlBFgsAXHNk.woff2)
1225        format("woff2");
1226    unicode-range:
1227        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1228        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1229        U+2212, U+2215, U+FEFF, U+FFFD;
1230}
1231/* cyrillic-ext */
1232@font-face {
1233    font-family: "IBM Plex Mono";
1234    font-style: normal;
1235    font-weight: 300;
1236    font-display: swap;
1237    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwl1FgsAXHNlYzg.woff2)
1238        format("woff2");
1239    unicode-range:
1240        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1241}
1242/* cyrillic */
1243@font-face {
1244    font-family: "IBM Plex Mono";
1245    font-style: normal;
1246    font-weight: 300;
1247    font-display: swap;
1248    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwlRFgsAXHNlYzg.woff2)
1249        format("woff2");
1250    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1251}
1252/* vietnamese */
1253@font-face {
1254    font-family: "IBM Plex Mono";
1255    font-style: normal;
1256    font-weight: 300;
1257    font-display: swap;
1258    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwl9FgsAXHNlYzg.woff2)
1259        format("woff2");
1260    unicode-range:
1261        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1262        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1263        U+1EA0-1EF9, U+20AB;
1264}
1265/* latin-ext */
1266@font-face {
1267    font-family: "IBM Plex Mono";
1268    font-style: normal;
1269    font-weight: 300;
1270    font-display: swap;
1271    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwl5FgsAXHNlYzg.woff2)
1272        format("woff2");
1273    unicode-range:
1274        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1275        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1276        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1277}
1278/* latin */
1279@font-face {
1280    font-family: "IBM Plex Mono";
1281    font-style: normal;
1282    font-weight: 300;
1283    font-display: swap;
1284    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwlBFgsAXHNk.woff2)
1285        format("woff2");
1286    unicode-range:
1287        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1288        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1289        U+2212, U+2215, U+FEFF, U+FFFD;
1290}
1291/* cyrillic-ext */
1292@font-face {
1293    font-family: "IBM Plex Mono";
1294    font-style: normal;
1295    font-weight: 400;
1296    font-display: swap;
1297    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1iIq131nj-otFQ.woff2)
1298        format("woff2");
1299    unicode-range:
1300        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1301}
1302/* cyrillic */
1303@font-face {
1304    font-family: "IBM Plex Mono";
1305    font-style: normal;
1306    font-weight: 400;
1307    font-display: swap;
1308    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1isq131nj-otFQ.woff2)
1309        format("woff2");
1310    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1311}
1312/* vietnamese */
1313@font-face {
1314    font-family: "IBM Plex Mono";
1315    font-style: normal;
1316    font-weight: 400;
1317    font-display: swap;
1318    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1iAq131nj-otFQ.woff2)
1319        format("woff2");
1320    unicode-range:
1321        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1322        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1323        U+1EA0-1EF9, U+20AB;
1324}
1325/* latin-ext */
1326@font-face {
1327    font-family: "IBM Plex Mono";
1328    font-style: normal;
1329    font-weight: 400;
1330    font-display: swap;
1331    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1iEq131nj-otFQ.woff2)
1332        format("woff2");
1333    unicode-range:
1334        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1335        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1336        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1337}
1338/* latin */
1339@font-face {
1340    font-family: "IBM Plex Mono";
1341    font-style: normal;
1342    font-weight: 400;
1343    font-display: swap;
1344    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1i8q131nj-o.woff2)
1345        format("woff2");
1346    unicode-range:
1347        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1348        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1349        U+2212, U+2215, U+FEFF, U+FFFD;
1350}
1351/* cyrillic-ext */
1352@font-face {
1353    font-family: "IBM Plex Mono";
1354    font-style: normal;
1355    font-weight: 500;
1356    font-display: swap;
1357    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgsAXHNlYzg.woff2)
1358        format("woff2");
1359    unicode-range:
1360        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1361}
1362/* cyrillic */
1363@font-face {
1364    font-family: "IBM Plex Mono";
1365    font-style: normal;
1366    font-weight: 500;
1367    font-display: swap;
1368    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwlRFgsAXHNlYzg.woff2)
1369        format("woff2");
1370    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1371}
1372/* vietnamese */
1373@font-face {
1374    font-family: "IBM Plex Mono";
1375    font-style: normal;
1376    font-weight: 500;
1377    font-display: swap;
1378    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgsAXHNlYzg.woff2)
1379        format("woff2");
1380    unicode-range:
1381        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1382        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1383        U+1EA0-1EF9, U+20AB;
1384}
1385/* latin-ext */
1386@font-face {
1387    font-family: "IBM Plex Mono";
1388    font-style: normal;
1389    font-weight: 500;
1390    font-display: swap;
1391    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgsAXHNlYzg.woff2)
1392        format("woff2");
1393    unicode-range:
1394        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1395        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1396        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1397}
1398/* latin */
1399@font-face {
1400    font-family: "IBM Plex Mono";
1401    font-style: normal;
1402    font-weight: 500;
1403    font-display: swap;
1404    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgsAXHNk.woff2)
1405        format("woff2");
1406    unicode-range:
1407        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1408        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1409        U+2212, U+2215, U+FEFF, U+FFFD;
1410}
1411/* cyrillic-ext */
1412@font-face {
1413    font-family: "IBM Plex Mono";
1414    font-style: normal;
1415    font-weight: 600;
1416    font-display: swap;
1417    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl1FgsAXHNlYzg.woff2)
1418        format("woff2");
1419    unicode-range:
1420        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1421}
1422/* cyrillic */
1423@font-face {
1424    font-family: "IBM Plex Mono";
1425    font-style: normal;
1426    font-weight: 600;
1427    font-display: swap;
1428    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlRFgsAXHNlYzg.woff2)
1429        format("woff2");
1430    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1431}
1432/* vietnamese */
1433@font-face {
1434    font-family: "IBM Plex Mono";
1435    font-style: normal;
1436    font-weight: 600;
1437    font-display: swap;
1438    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl9FgsAXHNlYzg.woff2)
1439        format("woff2");
1440    unicode-range:
1441        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1442        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1443        U+1EA0-1EF9, U+20AB;
1444}
1445/* latin-ext */
1446@font-face {
1447    font-family: "IBM Plex Mono";
1448    font-style: normal;
1449    font-weight: 600;
1450    font-display: swap;
1451    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl5FgsAXHNlYzg.woff2)
1452        format("woff2");
1453    unicode-range:
1454        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1455        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1456        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1457}
1458/* latin */
1459@font-face {
1460    font-family: "IBM Plex Mono";
1461    font-style: normal;
1462    font-weight: 600;
1463    font-display: swap;
1464    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFgsAXHNk.woff2)
1465        format("woff2");
1466    unicode-range:
1467        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1468        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1469        U+2212, U+2215, U+FEFF, U+FFFD;
1470}
1471/* cyrillic-ext */
1472@font-face {
1473    font-family: "IBM Plex Mono";
1474    font-style: normal;
1475    font-weight: 700;
1476    font-display: swap;
1477    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwl1FgsAXHNlYzg.woff2)
1478        format("woff2");
1479    unicode-range:
1480        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1481}
1482/* cyrillic */
1483@font-face {
1484    font-family: "IBM Plex Mono";
1485    font-style: normal;
1486    font-weight: 700;
1487    font-display: swap;
1488    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwlRFgsAXHNlYzg.woff2)
1489        format("woff2");
1490    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1491}
1492/* vietnamese */
1493@font-face {
1494    font-family: "IBM Plex Mono";
1495    font-style: normal;
1496    font-weight: 700;
1497    font-display: swap;
1498    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwl9FgsAXHNlYzg.woff2)
1499        format("woff2");
1500    unicode-range:
1501        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1502        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1503        U+1EA0-1EF9, U+20AB;
1504}
1505/* latin-ext */
1506@font-face {
1507    font-family: "IBM Plex Mono";
1508    font-style: normal;
1509    font-weight: 700;
1510    font-display: swap;
1511    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwl5FgsAXHNlYzg.woff2)
1512        format("woff2");
1513    unicode-range:
1514        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1515        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1516        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1517}
1518/* latin */
1519@font-face {
1520    font-family: "IBM Plex Mono";
1521    font-style: normal;
1522    font-weight: 700;
1523    font-display: swap;
1524    src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwlBFgsAXHNk.woff2)
1525        format("woff2");
1526    unicode-range:
1527        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1528        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1529        U+2212, U+2215, U+FEFF, U+FFFD;
1530}
1531/* cyrillic-ext */
1532@font-face {
1533    font-family: "IBM Plex Sans";
1534    font-style: italic;
1535    font-weight: 100 700;
1536    font-stretch: 100%;
1537    font-display: swap;
1538    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYnYAKRjdNS7Iw.woff2)
1539        format("woff2");
1540    unicode-range:
1541        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1542}
1543/* cyrillic */
1544@font-face {
1545    font-family: "IBM Plex Sans";
1546    font-style: italic;
1547    font-weight: 100 700;
1548    font-stretch: 100%;
1549    font-display: swap;
1550    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYDYAKRjdNS7Iw.woff2)
1551        format("woff2");
1552    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1553}
1554/* greek */
1555@font-face {
1556    font-family: "IBM Plex Sans";
1557    font-style: italic;
1558    font-weight: 100 700;
1559    font-stretch: 100%;
1560    font-display: swap;
1561    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYfYAKRjdNS7Iw.woff2)
1562        format("woff2");
1563    unicode-range:
1564        U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
1565}
1566/* vietnamese */
1567@font-face {
1568    font-family: "IBM Plex Sans";
1569    font-style: italic;
1570    font-weight: 100 700;
1571    font-stretch: 100%;
1572    font-display: swap;
1573    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYvYAKRjdNS7Iw.woff2)
1574        format("woff2");
1575    unicode-range:
1576        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1577        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1578        U+1EA0-1EF9, U+20AB;
1579}
1580/* latin-ext */
1581@font-face {
1582    font-family: "IBM Plex Sans";
1583    font-style: italic;
1584    font-weight: 100 700;
1585    font-stretch: 100%;
1586    font-display: swap;
1587    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYrYAKRjdNS7Iw.woff2)
1588        format("woff2");
1589    unicode-range:
1590        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1591        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1592        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1593}
1594/* latin */
1595@font-face {
1596    font-family: "IBM Plex Sans";
1597    font-style: italic;
1598    font-weight: 100 700;
1599    font-stretch: 100%;
1600    font-display: swap;
1601    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYTYAKRjdNQ.woff2)
1602        format("woff2");
1603    unicode-range:
1604        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1605        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1606        U+2212, U+2215, U+FEFF, U+FFFD;
1607}
1608/* cyrillic-ext */
1609@font-face {
1610    font-family: "IBM Plex Sans";
1611    font-style: normal;
1612    font-weight: 100 700;
1613    font-stretch: 100%;
1614    font-display: swap;
1615    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbSB4ZhRNU.woff2)
1616        format("woff2");
1617    unicode-range:
1618        U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
1619}
1620/* cyrillic */
1621@font-face {
1622    font-family: "IBM Plex Sans";
1623    font-style: normal;
1624    font-weight: 100 700;
1625    font-stretch: 100%;
1626    font-display: swap;
1627    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbSB4ZhRNU.woff2)
1628        format("woff2");
1629    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
1630}
1631/* greek */
1632@font-face {
1633    font-family: "IBM Plex Sans";
1634    font-style: normal;
1635    font-weight: 100 700;
1636    font-stretch: 100%;
1637    font-display: swap;
1638    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbSB4ZhRNU.woff2)
1639        format("woff2");
1640    unicode-range:
1641        U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
1642}
1643/* vietnamese */
1644@font-face {
1645    font-family: "IBM Plex Sans";
1646    font-style: normal;
1647    font-weight: 100 700;
1648    font-stretch: 100%;
1649    font-display: swap;
1650    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbSB4ZhRNU.woff2)
1651        format("woff2");
1652    unicode-range:
1653        U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1,
1654        U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
1655        U+1EA0-1EF9, U+20AB;
1656}
1657/* latin-ext */
1658@font-face {
1659    font-family: "IBM Plex Sans";
1660    font-style: normal;
1661    font-weight: 100 700;
1662    font-stretch: 100%;
1663    font-display: swap;
1664    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbSB4ZhRNU.woff2)
1665        format("woff2");
1666    unicode-range:
1667        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1668        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
1669        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
1670}
1671/* latin */
1672@font-face {
1673    font-family: "IBM Plex Sans";
1674    font-style: normal;
1675    font-weight: 100 700;
1676    font-stretch: 100%;
1677    font-display: swap;
1678    src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYbSB4Zh.woff2)
1679        format("woff2");
1680    unicode-range:
1681        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
1682        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
1683        U+2212, U+2215, U+FEFF, U+FFFD;
1684}
1685</style><style>:root {
1686    --theme-primary: #e30000;
1687    --theme-secondary: #2e2e30;
1688    --theme-tertiary: #f3f3f3;
1689    --theme-primary-foreground: #ffffff;
1690    --theme-secondary-foreground: #ffffff;
1691    --theme-tertiary-foreground: #2e2e30;
1692    --theme-surface: #ffffff;
1693    --theme-surface-raised: #ffffff;
1694    --theme-surface-sunken: #fafafa;
1695    --theme-surface-inverse: #18181b;
1696    --theme-foreground: #000000;
1697    --theme-ink: #000000;
1698    --theme-ink-muted: #71717a;
1699    --theme-ink-subtle: #a1a1aa;
1700    --theme-ink-inverse: #ffffff;
1701    --theme-line: #e4e4e7;
1702    --theme-line-strong: #d4d4d8;
1703    --theme-font-sans: "IBM Plex Sans", sans-serif;
1704    --theme-font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
1705    --theme-font-mono: "IBM Plex Mono", monospace;
1706    --theme-font-display: "IBM Plex Sans", sans-serif;
1707    --theme-text-xs: 0.75em;
1708    --theme-text-sm: 0.9em;
1709    --theme-text-base: 14px;
1710    --theme-text-lg: 1.5em;
1711    --theme-text-xl: 1.8em;
1712    --theme-text-2xl: 3em;
1713    --theme-radius: 0.25rem;
1714    --theme-radius-xs: 0.125rem;
1715    --theme-radius-sm: 0.25rem;
1716    --theme-radius-md: 0.375rem;
1717    --theme-radius-lg: 0.5rem;
1718    --theme-radius-xl: 0.75rem;
1719    --theme-radius-2xl: 1rem;
1720    --theme-radius-3xl: 1.5rem;
1721    --theme-heading-family: inherit;
1722    --theme-heading-weight: 600;
1723    --theme-heading-transform: uppercase;
1724    --theme-heading-tracking: inherit;
1725    --theme-heading-color: var(--color-secondary);
1726    --theme-h1-size: 36px;
1727    --theme-h1-leading: 40px;
1728    --theme-h2-size: 30px;
1729    --theme-h2-leading: 36px;
1730    --theme-h3-size: 26px;
1731    --theme-h3-leading: 32px;
1732    --theme-h4-size: 20px;
1733    --theme-h4-leading: 28px;
1734    --theme-h5-size: 18px;
1735    --theme-h5-leading: 24px;
1736    --theme-h6-size: 16px;
1737    --theme-h6-leading: 24px;
1738    --theme-nav-family: inherit;
1739    --theme-nav-color: var(--color-secondary);
1740    --theme-nav-size: 14px;
1741    --theme-nav-leading: 24px;
1742    --theme-nav-weight: 500;
1743    --theme-nav-tracking: 0.7px;
1744    --theme-nav-transform: uppercase;
1745    --theme-nav-padding: 0.5rem;
1746    --theme-nav-radius: 0;
1747    --theme-nav-hover-bg: var(--color-primary);
1748    --theme-nav-hover-fg: var(--color-primary-foreground);
1749    --theme-nav-active-color: var(--theme-nav-color);
1750    --theme-nav-active-weight: var(--theme-nav-weight);
1751    --theme-nav-active-border-width: 0px;
1752    --theme-nav-active-border-color: transparent;
1753    --theme-nav-panel-bg: #fff;
1754    --theme-nav-panel-border-top: 4px;
1755    --theme-nav-panel-border-top-color: var(--color-primary);
1756    --theme-nav-panel-border-bottom: 1px;
1757    --theme-nav-panel-border-bottom-color: var(--color-primary);
1758    --theme-nav-panel-column-line: transparent;
1759    --theme-nav-panel-radius: 0;
1760    --theme-nav-panel-shadow: none;
1761    --theme-nav-panel-min-height: 300px;
1762    --theme-nav-panel-label-family: inherit;
1763    --theme-nav-panel-label-size: 18px;
1764    --theme-nav-panel-label-leading: 40px;
1765    --theme-nav-panel-label-weight: 700;
1766    --theme-nav-panel-label-tracking: 1.25px;
1767    --theme-nav-panel-label-transform: uppercase;
1768    --theme-nav-panel-label-color: var(--color-secondary);
1769    --theme-nav-panel-link-size: 16px;
1770    --theme-nav-panel-link-leading: 24px;
1771    --theme-nav-panel-link-weight: 600;
1772    --theme-nav-panel-link-color: var(--color-secondary);
1773    --theme-nav-panel-link-padding: 0.5rem;
1774    --theme-nav-panel-link-radius: 0.25rem;
1775    --theme-nav-panel-link-hover-bg: color-mix(in oklab, var(--color-primary) 10%, transparent);
1776    --theme-nav-panel-link-hover-fg: var(--color-secondary);
1777    --theme-nav-more-color: #000;
1778    --theme-nav-more-padding: 0.5rem;
1779    --theme-nav-more-radius: 0.25rem;
1780    --theme-nav-more-hover-bg: var(--color-primary);
1781    --theme-nav-more-hover-fg: var(--color-primary-foreground);
1782    --theme-nav-card-bg: transparent;
1783    --theme-nav-card-border-width: 0;
1784    --theme-nav-card-border-color: transparent;
1785    --theme-nav-card-radius: 0;
1786    --theme-nav-card-padding: 0.5rem;
1787    --theme-nav-card-hover-bg: var(--color-zinc-100);
1788    --theme-nav-card-hover-border-color: transparent;
1789    --theme-nav-card-columns: 1fr;
1790    --theme-nav-card-columns-wide: repeat(2, minmax(0, 1fr));
1791    --theme-nav-icon-size: auto;
1792    --theme-nav-icon-radius: 0;
1793    --theme-nav-icon-border: 0;
1794    --theme-nav-icon-border-color: transparent;
1795    --theme-nav-icon-bg: transparent;
1796    --theme-nav-icon-color: inherit;
1797    --theme-nav-icon-hover-bg: transparent;
1798    --theme-nav-icon-hover-color: var(--color-primary);
1799    --theme-nav-search-panel-bg: color-mix(in oklab, var(--color-primary) 10%, #fff);
1800    --theme-nav-search-panel-border: 0 0 1px 1px;
1801    --theme-nav-search-panel-border-color: var(--color-zinc-300);
1802    --theme-nav-search-panel-radius: 0;
1803    --theme-nav-search-panel-shadow: none;
1804    --theme-nav-search-input-bg: #fff;
1805    --theme-nav-search-input-border: 1px;
1806    --theme-nav-search-input-border-color: #e1e1e1;
1807    --theme-nav-search-input-radius: 9999px;
1808    --theme-nav-search-input-color: inherit;
1809    --theme-nav-search-input-placeholder: color-mix(in oklab, currentcolor 50%, transparent);
1810    --theme-nav-search-input-size: inherit;
1811    --theme-nav-search-input-padding: 0 1.5rem;
1812    --theme-nav-search-submit-bg: var(--color-primary);
1813    --theme-nav-search-submit-fg: var(--color-primary-foreground);
1814    --theme-nav-account-panel-bg: #fff;
1815    --theme-nav-account-panel-border: 1px;
1816    --theme-nav-account-panel-border-color: var(--color-gray-200);
1817    --theme-nav-account-panel-radius: 0.75rem;
1818    --theme-nav-account-panel-shadow: 0 4px 24px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.06);
1819    --theme-nav-account-item-color: #000e2a;
1820    --theme-nav-account-item-hover-bg: var(--color-gray-50);
1821    --theme-nav-account-item-hover-color: #086bdb;
1822    --theme-nav-account-divider: var(--color-gray-100);
1823    --theme-nav-account-avatar-bg: linear-gradient(to bottom right, #086bdb, #0a4a96);
1824    --theme-nav-account-avatar-color: #fff;
1825    --theme-nav-account-focus: #086bdb;
1826    --theme-nav-account-trigger-bg: transparent;
1827    --theme-nav-account-trigger-border: 1.5px;
1828    --theme-nav-account-trigger-border-color: var(--color-gray-300);
1829    --theme-nav-account-trigger-radius: 9999px;
1830    --theme-nav-account-name-color: #000e2a;
1831    --theme-nav-drawer-top: 79px;
1832    --theme-nav-drawer-bg: #fff;
1833    --theme-nav-drawer-color: inherit;
1834    --theme-nav-drawer-item-family: inherit;
1835    --theme-nav-drawer-item-size: 21px;
1836    --theme-nav-drawer-item-leading: 1.5;
1837    --theme-nav-drawer-item-weight: 700;
1838    --theme-nav-drawer-item-tracking: normal;
1839    --theme-nav-drawer-item-transform: none;
1840    --theme-nav-drawer-item-color: var(--color-secondary);
1841    --theme-nav-drawer-item-justify: flex-start;
1842    --theme-nav-drawer-item-bg: transparent;
1843    --theme-nav-drawer-item-active-bg: transparent;
1844    --theme-nav-drawer-item-radius: 0;
1845    --theme-nav-drawer-item-padding: 0.5rem 0;
1846    --theme-nav-drawer-item-border-width: 0;
1847    --theme-nav-drawer-item-border-color: transparent;
1848    --theme-nav-drawer-item-active-color: var(--color-primary);
1849    --theme-nav-drawer-toggle-size: 22px;
1850    --theme-nav-drawer-toggle-color: currentColor;
1851    --theme-nav-drawer-divider-width: 0;
1852    --theme-nav-drawer-divider: transparent;
1853    --theme-nav-drawer-link-size: 16px;
1854    --theme-nav-drawer-link-color: inherit;
1855    --theme-prose-family: var(--theme-font-sans);
1856    --theme-prose-size: 18px;
1857    --theme-prose-leading: 28px;
1858    --theme-prose-color: #565656;
1859    --theme-prose-heading-family: var(--theme-font-sans);
1860    --theme-prose-heading-color: var(--color-secondary);
1861    --theme-prose-heading-transform: none;
1862    --theme-prose-container-heading-family: var(--theme-font-mono);
1863    --theme-prose-container-heading-color: var(--color-primary);
1864    --theme-prose-container-heading-transform: uppercase;
1865    --theme-archive-family: var(--theme-font-mono);
1866    --theme-archive-color: var(--color-primary);
1867    --theme-archive-transform: uppercase;
1868    --theme-section-family: inherit;
1869    --theme-section-size: 20px;
1870    --theme-section-leading: 28px;
1871    --theme-section-weight: 700;
1872    --theme-section-tracking: 1.4px;
1873    --theme-section-transform: uppercase;
1874    --theme-section-color: var(--color-secondary);
1875    --theme-section-border: 2px;
1876    --theme-section-border-color: var(--color-secondary);
1877    --theme-container: min(100%, 1200px);
1878    --theme-border-width: 1px;
1879    --theme-shadow: 0 0 12px rgba(114, 114, 119, 0.4);
1880}
1881.color-scope {
1882    --theme-heading-color: var(--color-secondary);
1883    --theme-nav-color: var(--color-secondary);
1884    --theme-nav-hover-bg: var(--color-primary);
1885    --theme-nav-hover-fg: var(--color-primary-foreground);
1886    --theme-nav-panel-border-top-color: var(--color-primary);
1887    --theme-nav-panel-border-bottom-color: var(--color-primary);
1888    --theme-nav-panel-label-color: var(--color-secondary);
1889    --theme-nav-panel-link-color: var(--color-secondary);
1890    --theme-nav-panel-link-hover-bg: color-mix(in oklab, var(--color-primary) 10%, transparent);
1891    --theme-nav-panel-link-hover-fg: var(--color-secondary);
1892    --theme-nav-more-hover-bg: var(--color-primary);
1893    --theme-nav-more-hover-fg: var(--color-primary-foreground);
1894    --theme-nav-card-hover-bg: var(--color-zinc-100);
1895    --theme-nav-icon-hover-color: var(--color-primary);
1896    --theme-nav-search-panel-bg: color-mix(in oklab, var(--color-primary) 10%, #fff);
1897    --theme-nav-search-panel-border-color: var(--color-zinc-300);
1898    --theme-nav-search-submit-bg: var(--color-primary);
1899    --theme-nav-search-submit-fg: var(--color-primary-foreground);
1900    --theme-nav-account-panel-border-color: var(--color-gray-200);
1901    --theme-nav-account-item-hover-bg: var(--color-gray-50);
1902    --theme-nav-account-divider: var(--color-gray-100);
1903    --theme-nav-account-trigger-border-color: var(--color-gray-300);
1904    --theme-nav-drawer-item-color: var(--color-secondary);
1905    --theme-nav-drawer-item-active-color: var(--color-primary);
1906    --theme-prose-heading-color: var(--color-secondary);
1907    --theme-prose-container-heading-color: var(--color-primary);
1908    --theme-archive-color: var(--color-primary);
1909    --theme-section-color: var(--color-secondary);
1910    --theme-section-border-color: var(--color-secondary);
1911}</style> 
1911<script>window.__authProviders={"facebook":false,"linkedin":false}</script>
1911 
1911<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://penandthepad.com/#website","url":"https://penandthepad.com/","name":"Pen and the Pad","description":"Pen and the Pad is your resource for writing, grammar, citations, and the craft of language and literature.","publisher":{"@id":"https://penandthepad.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://penandthepad.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://penandthepad.com/#organization","name":"Pen and the Pad","url":"https://penandthepad.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://penandthepad.com/#/schema/logo/image/","url":"https://penandthepad.com/astrostatic/3a22e5c5/_astro/penandthepad.CAcBzb0Z.svg","contentUrl":"https://penandthepad.com/astrostatic/3a22e5c5/_astro/penandthepad.CAcBzb0Z.svg","width":205,"height":70,"caption":"Pen and the Pad"},"image":{"@id":"https://penandthepad.com/#/schema/logo/image/"},"parentOrganization":{"@type":"Organization","name":"TechnologyAdvice","url":"https://technologyadvice.com/"}}]}</script>
1911<script>(function(){const targeting = {"env":"prod","stage":"prod","url":"penandthepad.com/about-us/","hostname":"penandthepad.com","edge_country":"SG","cid":"about-us","path":"sites,penandthepad.com,about-us"};
1912
1913    window.dataLayer = window.dataLayer || []
1914    window.dataLayer.push(
1915        Object.fromEntries(
1916            Object.entries(targeting).map(([k, v]) => [`ad_${k}`, v]),
1917        ),
1918    )
1919})();</script>
1919<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3235755782694080" crossorigin="anonymous"></script>
1919<script>(function(){const sampleRate = 1;
1920const debug = false;
1921const targeting = {"env":"prod","stage":"prod","url":"penandthepad.com/about-us/","hostname":"penandthepad.com","edge_country":"SG","cid":"about-us","path":"sites,penandthepad.com,about-us"};
1922
1923        (() => {
1924            // Same-origin, site-aware base (mirrors getSiteAwarePath): dev/preview
1925            // serve sites under /sites/{domain}/…; prod serves each on its own host.
1926            let base = "/api/ado";
1927            if (location.pathname.startsWith("/sites/")) {
1928                const p = location.pathname.split("/");
1929                if (p.length >= 3) base = "/sites/" + p[2] + base;
1930            }
1931
1932            const uuid = () =>
1933                (crypto.randomUUID && crypto.randomUUID()) ||
1934                String(Date.now()) + Math.random().toString(16).slice(2);
1935
1936            const pageviewId = uuid();
1937            let sessionId;
1938            try {
1939                sessionId = sessionStorage.getItem("ado_sid");
1940                if (!sessionId) {
1941                    sessionId = uuid();
1942                    sessionStorage.setItem("ado_sid", sessionId);
1943                }
1944            } catch (_) {
1945                sessionId = "";
1946            }
1947
1948            // --- Unified transport: buffer typed events, flush one batch. ---
1949            // Trailing debounce: each event (re)arms a short idle timer, so a
1950            // burst of N events coalesces into ONE sendBeacon fired shortly after
1951            // the burst ends (e.g. 10 events over 5s → 1 request). A max-age cap
1952            // guarantees a continuous stream still flushes at least every
1953            // FLUSH_MAX_MS, a size cap guards the sendBeacon payload limit, and
1954            // the buffer is always flushed on tab-hide/unload so nothing is lost.
1955            const FLUSH_IDLE_MS = 1000; // flush this long after the last event
1956            const FLUSH_MAX_MS = 5000; // never hold a buffered event longer
1957            const MAX_BATCH = 20;
1958            let buffer = [];
1959            let timer = null;
1960            let firstAt = 0;
1961            const flush = () => {
1962                if (timer) {
1963                    clearTimeout(timer);
1964                    timer = null;
1965                }
1966                firstAt = 0;
1967                if (!buffer.length) return;
1968                const events = buffer;
1969                buffer = [];
1970                try {
1971                    const body = new Blob([JSON.stringify({ events })], {
1972                        type: "text/plain",
1973                    });
1974                    navigator.sendBeacon(base + "/collect/", body);
1975                    if (debug) console.log("[ado] flush", events);
1976                } catch (e) {
1977                    if (debug) console.warn("[ado] flush failed", e);
1978                }
1979            };
1980            const push = (event) => {
1981                buffer.push(event);
1982                if (buffer.length >= MAX_BATCH) {
1983                    flush();
1984                    return;
1985                }
1986                const now = Date.now();
1987                if (!firstAt) firstAt = now;
1988                // Idle debounce, clamped so total hold never exceeds FLUSH_MAX_MS.
1989                const delay = Math.max(
1990                    0,
1991                    Math.min(FLUSH_IDLE_MS, FLUSH_MAX_MS - (now - firstAt)),
1992                );
1993                if (timer) clearTimeout(timer);
1994                timer = setTimeout(flush, delay);
1995            };
1996
1997            window._ado = {
1998                pageview_id: pageviewId,
1999                session_id: sessionId,
2000                push,
2001                flush,
2002            };
2003
2004            addEventListener("visibilitychange", () => {
2005                if (document.visibilityState === "hidden") flush();
2006            });
2007            addEventListener("pagehide", flush);
2008
2009            const canonical =
2010                document.querySelector('link[rel="canonical"]')?.href ||
2011                location.href;
2012
2013            // --- Framing detection -------------------------------------------
2014            // Who, if anyone, has this page in an iframe — used to spot third
2015            // parties embedding our content.
2016            //
2017            // `location.ancestorOrigins` is the browser's own list of ancestor
2018            // frame origins (parent first, outermost last; Chromium + Safari).
2019            // Unlike `document.referrer` it can't be blanked by the framer's
2020            // Referrer-Policy and it does NOT drift to our own previous URL when
2021            // the framed page navigates inside the frame. The referrer is only
2022            // used to add path detail on top of an origin the ancestor list has
2023            // already confirmed, or as the sole signal on Firefox, which has no
2024            // ancestorOrigins. Sandboxed/opaque ancestors report "null".
2025            let iframeReferrer = "";
2026            try {
2027                if (window.top !== window.self) {
2028                    const ancestors = location.ancestorOrigins;
2029                    const outermost =
2030                        ancestors && ancestors.length
2031                            ? ancestors[ancestors.length - 1]
2032                            : "";
2033                    const referrerOrigin = document.referrer
2034                        ? new URL(document.referrer).origin
2035                        : "";
2036                    if (outermost && outermost !== "null") {
2037                        iframeReferrer =
2038                            referrerOrigin === outermost
2039                                ? document.referrer
2040                                : outermost;
2041                    } else if (
2042                        referrerOrigin &&
2043                        referrerOrigin !== location.origin
2044                    ) {
2045                        // A same-origin referrer inside a frame is our own
2046                        // previous page, not an embedder — never report it.
2047                        iframeReferrer = document.referrer;
2048                    }
2049                    // Our own frames (self-embeds, previews) aren't embedding.
2050                    if (iframeReferrer.indexOf(location.origin) === 0) {
2051                        iframeReferrer = "";
2052                    }
2053                }
2054            } catch (_) {
2055                iframeReferrer = "";
2056            }
2057
2058            // Same edge country the astro-proxy injected into the GPT
2059            // `edge_country` targeting → keeps the event stream aligned with GAM.
2060            let adoCountry = String(targeting.edge_country || "");
2061            if (adoCountry.indexOf("{{") === 0) adoCountry = "";
2062
2063            const ctx = {
2064                site: (window._vars && window._vars.domain) || location.hostname,
2065                hostname: location.hostname,
2066                path: location.pathname,
2067                canonical_url: canonical,
2068                post_id: String(targeting.post_id || ""),
2069                category: String(targeting.category || ""),
2070                country: adoCountry,
2071            };
2072
2073            // Pageview (always sent).
2074            push({
2075                type: "pageview",
2076                client_event_ts: Date.now(),
2077                pageview_id: pageviewId,
2078                session_id: sessionId,
2079                page_type: String(targeting.ptype || ""),
2080                referrer: document.referrer || "",
2081                iframe_referrer: iframeReferrer,
2082                ...ctx,
2083            });
2084
2085            // Per-slot refresh counter.
2086            const refreshCount = Object.create(null);
2087
2088            const adEvent = (eventType, event) => {
2089                if (sampleRate < 1 && Math.random() >= sampleRate) return;
2090                const slot = event.slot;
2091                const elId = slot.getSlotElementId();
2092                const size = Array.isArray(event.size)
2093                    ? event.size.join("x")
2094                    : event.size != null
2095                      ? String(event.size)
2096                      : "";
2097                const resp = slot.getResponseInformation
2098                    ? slot.getResponseInformation()
2099                    : null;
2100                const idx =
2101                    eventType === "slot_render_ended"
2102                        ? (refreshCount[elId] = (refreshCount[elId] || 0) + 1) - 1
2103                        : refreshCount[elId]
2104                          ? refreshCount[elId] - 1
2105                          : 0;
2106
2107                push({
2108                    type: "ad_event",
2109                    event_type: eventType,
2110                    client_event_ts: Date.now(),
2111                    pageview_id: pageviewId,
2112                    session_id: sessionId,
2113                    ad_unit_path: slot.getAdUnitPath(),
2114                    slot_element_id: elId,
2115                    slot_size: size,
2116                    is_empty: !!event.isEmpty,
2117                    refresh_index: idx,
2118                    line_item_id: resp ? String(resp.lineItemId ?? "") : "",
2119                    creative_id: resp ? String(resp.creativeId ?? "") : "",
2120                    advertiser_id: resp ? String(resp.advertiserId ?? "") : "",
2121                    campaign_id: resp ? String(resp.campaignId ?? "") : "",
2122                    ...ctx,
2123                });
2124            };
2125
2126            window.googletag = window.googletag || { cmd: [] };
2127            window.googletag.cmd.push(() => {
2128                window.googletag
2129                    .pubads()
2130                    .addEventListener("slotRenderEnded", (e) =>
2131                        adEvent("slot_render_ended", e),
2132                    );
2133                window.googletag
2134                    .pubads()
2135                    .addEventListener("impressionViewable", (e) =>
2136                        adEvent("impression_viewable", e),
2137                    );
2138            });
2139        })();
2140    })();</script>
2140 
2140<script>(function(){const heartbeatMs = 5000;
2141const idleMs = 30000;
2142const snapshotMs = 20000;
2143const targeting = {"env":"prod","stage":"prod","url":"penandthepad.com/about-us/","hostname":"penandthepad.com","edge_country":"SG","cid":"about-us","path":"sites,penandthepad.com,about-us"};
2144const debug = false;
2145
2146        (() => {
2147            // Don't instrument headless/automation traffic.
2148            if (navigator.webdriver) return;
2149            // Requires the beacon's transport (same observability gate).
2150            const ado = window._ado;
2151            if (!ado || typeof ado.push !== "function") return;
2152
2153            const pageviewId = ado.pageview_id;
2154            const sessionId = ado.session_id;
2155            const uuid = () =>
2156                (crypto.randomUUID && crypto.randomUUID()) ||
2157                String(Date.now()) + Math.random().toString(16).slice(2);
2158            const str = (v) => (v == null ? "" : String(v));
2159
2160            // --- Page context (stable for the pageview; per-segment path/post_id
2161            // are tracked separately since they swap on infinite-scroll). ---
2162            const canonical =
2163                document.querySelector('link[rel="canonical"]')?.href ||
2164                location.href;
2165            let country = str(targeting.edge_country);
2166            if (country.indexOf("{{") === 0) country = "";
2167            const ctx = {
2168                site: (window._vars && window._vars.domain) || location.hostname,
2169                hostname: location.hostname,
2170                canonical_url: canonical,
2171                category: str(targeting.category),
2172                country,
2173            };
2174            const referrer = document.referrer || "";
2175
2176            // --- Loyalty: durable, consent-gated visitor id. Respect Global
2177            // Privacy Control; fall back to session-only when storage is blocked.
2178            // (Wire to the site CMP here for finer-grained consent.) ---
2179            let visitorId = "";
2180            let isNewVisitor = 0;
2181            try {
2182                if (navigator.globalPrivacyControl !== true) {
2183                    visitorId = localStorage.getItem("ado_vid") || "";
2184                    if (!visitorId) {
2185                        visitorId = uuid();
2186                        localStorage.setItem("ado_vid", visitorId);
2187                        isNewVisitor = 1;
2188                    }
2189                }
2190            } catch (_) {
2191                visitorId = "";
2192            }
2193
2194            // --- Per-post segments. segment_id = `${pageview_id}:${post_id}`, so
2195            // scrolling back into an earlier article RESUMES its segment. ---
2196            const segments = new Map();
2197            let activeSeg = null;
2198            let activeSince = null; // ms timestamp while accruing, else null
2199            let lastActivity = Date.now();
2200            let sinceSnapshot = 0;
2201
2202            const accruing = () =>
2203                document.visibilityState === "visible" &&
2204                Date.now() - lastActivity < idleMs;
2205
2206            function flushAccrual() {
2207                if (activeSince !== null && activeSeg) {
2208                    const now = Date.now();
2209                    activeSeg.engagedSeconds += (now - activeSince) / 1000;
2210                    activeSince = now;
2211                }
2212            }
2213            function setAccruing(on) {
2214                flushAccrual();
2215                activeSince = on ? Date.now() : null;
2216            }
2217
2218            function segFor(pid, category, path) {
2219                let seg = segments.get(pid);
2220                if (!seg) {
2221                    seg = {
2222                        post_id: pid,
2223                        segment_id: pageviewId + ":" + pid,
2224                        category: str(category) || ctx.category,
2225                        path: str(path) || location.pathname,
2226                        engagedSeconds: 0,
2227                        maxScrollPct: 0,
2228                        reachedEnd: 0,
2229                        seq: 0,
2230                    };
2231                    segments.set(pid, seg);
2232                } else {
2233                    if (category != null && str(category)) seg.category = str(category);
2234                    if (path != null && str(path)) seg.path = str(path);
2235                }
2236                return seg;
2237            }
2238
2239            // Deepest scroll into the active article + end detection, reusing the
2240            // h1[infiniscroll-id] / [data-type='infiniscroll-break'] geometry.
2241            function measureActive() {
2242                if (!activeSeg) return;
2243                const headers = Array.prototype.slice.call(
2244                    document.querySelectorAll("h1[infiniscroll-id]"),
2245                );
2246                const header =
2247                    document.querySelector(
2248                        'h1[infiniscroll-id="' + activeSeg.post_id + '"]',
2249                    ) || headers[0];
2250                if (!header) return;
2251                const y = window.scrollY;
2252                const toY = (el) =>
2252 el.getBoundingClientRect().top + y;
2253                const idx = headers.indexOf(header);
2254                const breaks = document.querySelectorAll(
2255                    "[data-type='infiniscroll-break']",
2256                );
2257                const bottomEl = breaks[idx] || headers[idx + 1];
2258                const top = toY(header);
2259                const bottom = bottomEl
2260                    ? toY(bottomEl)
2261                    : document.documentElement.scrollHeight;
2262                let pct;
2263                if (bottom - top <= window.innerHeight) {
2264                    // Article fits the viewport → readable without scrolling.
2265                    pct = 100;
2266                } else {
2267                    pct = Math.round(
2268                        Math.min(Math.max((y - top) / (bottom - top), 0), 1) * 100,
2269                    );
2270                }
2271                if (pct > activeSeg.maxScrollPct) activeSeg.maxScrollPct = pct;
2272                // End reached when the article's bottom boundary enters the viewport.
2273                if (bottom <= y + window.innerHeight + 4) activeSeg.reachedEnd = 1;
2274            }
2275
2276            function snapshot(seg) {
2277                if (!seg) return;
2278                seg.seq += 1;
2279                ado.push({
2280                    type: "engagement",
2281                    client_event_ts: Date.now(),
2282                    pageview_id: pageviewId,
2283                    session_id: sessionId,
2284                    segment_id: seg.segment_id,
2285                    post_id: seg.post_id,
2286                    site: ctx.site,
2287                    hostname: ctx.hostname,
2288                    path: seg.path,
2289                    canonical_url: ctx.canonical_url,
2290                    category: seg.category,
2291                    country: ctx.country,
2292                    referrer: referrer,
2293                    visitor_id: visitorId,
2294                    is_new_visitor: isNewVisitor,
2295                    engaged_seconds: Math.round(seg.engagedSeconds),
2296                    max_scroll_pct: seg.maxScrollPct,
2297                    reached_end: seg.reachedEnd,
2298                    seq: seg.seq,
2299                });
2300                if (debug) console.log("[ado] engagement", seg.segment_id, seg);
2301            }
2302
2303            function switchTo(pid, category, path) {
2304                if (!pid) return;
2305                if (activeSeg && activeSeg.post_id === pid) {
2306                    segFor(pid, category, path); // refresh path/category
2307                    return;
2308                }
2309                setAccruing(false); // bank time to the leaving segment
2310                if (activeSeg) snapshot(activeSeg); // flush leaving segment state
2311                activeSeg = segFor(pid, category, path);
2312                lastActivity = Date.now(); // a transition counts as activity
2313                setAccruing(accruing());
2314                measureActive();
2315            }
2316
2317            // Authoritative active-article signal from InfiniScroll transitions.
2318            document.addEventListener("ado:article", (e) => {
2319                const d = (e && e.detail) || {};
2320                switchTo(str(d.post_id), d.category, d.path);
2321            });
2322
2323            // Activity + scroll.
2324            const bump = () => {
2325                const wasAccruing = activeSince !== null;
2326                lastActivity = Date.now();
2327                if (!wasAccruing && document.visibilityState === "visible") {
2328                    setAccruing(true);
2329                }
2330            };
2331            let scrollThrottled = false;
2332            const onScroll = () => {
2333                bump();
2334                if (scrollThrottled) return;
2335                scrollThrottled = true;
2336                setTimeout(() => {
2337                    scrollThrottled = false;
2338                    measureActive();
2339                }, 200);
2340            };
2341            addEventListener("scroll", onScroll, { passive: true });
2342            ["pointermove", "keydown", "touchstart", "click"].forEach((ev) =>
2343                addEventListener(ev, bump, { passive: true }),
2344            );
2345
2346            // Visibility + bfcache lifecycle. Beacon also flushes on hide; we push
2347            // the final engagement snapshot then force a flush s
2347o it isn't stranded.
2348            function finalizeAndFlush() {
2349                setAccruing(false);
2350                if (activeSeg) snapshot(activeSeg);
2351                if (typeof ado.flush === "function") ado.flush();
2352            }
2353            addEventListener("visibilitychange", () => {
2354                if (document.visibilityState === "hidden") {
2355                    finalizeAndFlush();
2356                } else {
2357                    lastActivity = Date.now();
2358                    setAccruing(accruing());
2359                }
2360            });
2361            addEventListener("pagehide", finalizeAndFlush);
2362            addEventListener("pageshow", (e) => {
2363                if (e.persisted) {
2364                    lastActivity = Date.now();
2365                    setAccruing(accruing());
2366                }
2367            });
2368
2369            // Heartbeat: re-evaluate idle, remeasure, and drop an insurance
2370            // snapshot so long single-article reads / crashes aren't lost.
2371            setInterval(() => {
2372                setAccruing(accruing());
2373                measureActive();
2374                sinceSnapshot += heartbeatMs;
2375                if (sinceSnapshot >= snapshotMs && activeSeg) {
2376                    sinceSnapshot = 0;
2377                    flushAccrual();
2378                    snapshot(activeSeg);
2379                }
2380            }, heartbeatMs);
2381
2382            // Seed the landing article's segment (post pages only).
2383            const landingPid = str(targeting.post_id);
2384            if (landingPid) {
2385                switchTo(landingPid, ctx.category, location.pathname);
2386            }
2387        })();
2388    })();</script>
2388  <title>About Us | Pen and the Pad</title><meta name="title" content="About Us | Pen and the Pad"><meta name="description" content="The Pen & The Pad is a go-to resource for writers, with all the information to help you improve."><meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"><meta property="og:locale" content="en_US"><meta property="og:type" content="article"><meta property="og:title" content="About Us | Pen and the Pad"><meta property="og:description" content="The Pen & The Pad is a go-to resource for writers, with all the information to help you improve."><meta property="og:url" content="https://penandthepad.com/about-us/"><meta property="og:site_name" content="Pen and the Pad"><meta name="twitter:card" content="summary_large_image"><link rel="canonical" href="https://penandthepad.com/about-us/">
2388<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://penandthepad.com/about-us/","url":"https://penandthepad.com/about-us/","name":"About Us | Pen and the Pad","isPartOf":{"@id":"https://penandthepad.com/#website"},"breadcrumb":{"@id":"https://penandthepad.com/about-us/#breadcrumb"},"inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://penandthepad.com/about-us/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"WebSite","@id":"https://penandthepad.com/","name":"Home"}},{"@type":"ListItem","position":2,"item":{"@type":"WebPage","@id":"https://penandthepad.com/about-us/","name":"About Pen and the Pad"}}]}]}</script>
2388  <link rel="stylesheet" href="https://penandthepad.com/astrostatic/3a22e5c5/_astro/index.CCmax0bU.css">
2389<link rel="stylesheet" href="https://penandthepad.com/astrostatic/3a22e5c5/_astro/infinite.De1tChLT.css">
2390<style>.ad-fluid iframe[id^=google_ads_iframe]{display:block;margin-inline:auto}
2391</style>
2392<style>.slide-right-enter-active[data-v-0c8284e0],.slide-right-leave-active[data-v-0c8284e0]{transition:all .3s}.slide-right-enter-from[data-v-0c8284e0],.slide-right-leave-to[data-v-0c8284e0]{transform:translate(-100vw);opacity:0}.slide-left-enter-active[data-v-0c8284e0],.slide-left-leave-active[data-v-0c8284e0]{transition:all .3s}.slide-left-enter-from[data-v-0c8284e0],.slide-left-leave-to[data-v-0c8284e0]{transform:translate(100vw);opacity:0}.submenu-content [data-submenu][data-v-0c8284e0]{display:none}.submenu-content [data-submenu].active[data-v-0c8284e0]{display:block}#site-navigation:not([data-nav-computed]){visibility:hidden;animation:nav-fallback 0s 1.5s forwards}@keyframes nav-fallback{to{visibility:visible}}.slide-enter-active[data-v-14b806f0],.slide-leave-active[data-v-14b806f0]{transition:all .3s}.slide-enter-from[data-v-14b806f0],.slide-leave-to[data-v-14b806f0]{transform:translateY(20px);opacity:0}:root{--skybox-reserve: 18.75vw}@media(min-width:768px){:root{--skybox-reserve: 90px}}[data-ad-slot=skybox]{min-height:var(--skybox-reserve)}[data-ad-slot=skybox][data-loaded],[data-ad-slot=skybox][data-empty]{min-height:0}[data-ad-slot=skybox]:not([data-empty])~#main-navigation{top:var(--skybox-reserve)}.animate-ping-once[data-v-788e3fe6]{animation:ping-once-788e3fe6 .35s ease-out forwards}@keyframes ping-once-788e3fe6{0%{transform:scale(1)}40%{transform:scale(1.2)}70%{transform:scale(.95)}to{transform:scale(1)}}/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid;--tw-content:"";--tw-border-style:solid;--tw-font-weight:initial;--tw-leading:initial}}}a[data-astro-cid-tdou77qi]:hover,a[data-astro-cid-tdou77qi]:focus{color:#2a6496;text-decoration-line:underline}a[data-astro-cid-tdou77qi]:active,a[data-astro-cid-tdou77qi]:hover{outline-style:var(--tw-outline-style);outline-width:0}#ftl-footer[data-astro-cid-tdou77qi]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Helvetica Neue,Helvetica,Arial,sans-serif!important}@media(min-width:768px){.container1[data-astro-cid-tdou77qi]{width:750px}}@media(min-width:992px){.container1[data-astro-cid-tdou77qi]{width:970px}}@media(min-width:1200px){.container1[data-astro-cid-tdou77qi]{width:1170px}}.container1[data-astro-cid-tdou77qi]:before{--tw-content:"";content:var(--tw-content);display:table}.container1[data-astro-cid-tdou77qi],.container-fluid[data-astro-cid-tdou77qi]{margin-inline:auto;padding-inline:15px}.container-fluid[data-astro-cid-tdou77qi]:before,.row[data-astro-cid-tdou77qi]:before{--tw-content:"";content:var(--tw-content);display:table}.container-fluid[data-astro-cid-tdou77qi]:after,.row[data-astro-cid-tdou77qi]:after{clear:both;--tw-content:"";content:var(--tw-content);display:table}.col-xs-12[data-astro-cid-tdou77qi]{float:left;width:100%}@media(min-width:768px){.col-sm-5[data-astro-cid-tdou77qi]{float:left;width:41.6667%}.col-sm-6[data-astro-cid-tdou77qi]{float:left;width:50%}.col-sm-7[data-astro-cid-tdou77qi]{float:left;width:58.3333%}}.col-xs-12[data-astro-cid-tdou77qi],.col-sm-6[data-astro-cid-tdou77qi],.col-sm-7[data-astro-cid-tdou77qi],.col-md-12[data-astro-cid-tdou77qi]{min-height:1px;padding-inline:15px;position:relative}@media(min-width:992px){.col-md-12[data-astro-cid-tdou77qi]{float:left;width:100%}}#ftl-footer[data-astro-cid-tdou77qi]{width:100%;overflow-x:hidden}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi]{margin-inline:-15px}#ftl-footer[data-astro-cid-tdou77qi] .footerContainer[data-astro-cid-tdou77qi]{max-width:1230px;padding-top:25px;padding-bottom:20px}
2392#ftl-footer[data-astro-cid-tdou77qi] .footerWidget[data-astro-cid-tdou77qi]{margin-left:calc(var(--spacing,.25rem) * 0);width:100%}#ftl-footer[data-astro-cid-tdou77qi] .footerOuter[data-astro-cid-tdou77qi]{border-top-style:var(--tw-border-style);background-color:#292b31;border-top-width:0}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .left[data-astro-cid-tdou77qi]{padding-left:calc(var(--spacing,.25rem) * 0)}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .top-section[data-astro-cid-tdou77qi]{padding-left:calc(var(--spacing,.25rem) * 0);margin-bottom:10px}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .top-section[data-astro-cid-tdou77qi] div[data-astro-cid-tdou77qi],#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .bottom-section[data-astro-cid-tdou77qi],#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .bottom-section[data-astro-cid-tdou77qi] div[data-astro-cid-tdou77qi]{padding-left:calc(var(--spacing,.25rem) * 0)}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] div[data-astro-cid-tdou77qi] .section-header[data-astro-cid-tdou77qi]{margin-bottom:calc(var(--spacing,.25rem) * 0);--tw-font-weight:var(--font-weight-semibold,600);font-size:14px;font-weight:var(--font-weight-semibold,600);color:#737981;text-transform:none}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] div[data-astro-cid-tdou77qi] ul[data-astro-cid-tdou77qi]{padding-left:calc(var(--spacing,.25rem) * 0);--tw-leading:1.5em;--tw-font-weight:var(--font-weight-semibold,600);font-size:13px;line-height:1.5em;font-weight:var(--font-weight-semibold,600);color:#e9ebee;list-style-type:none}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] div[data-astro-cid-tdou77qi] ul[data-astro-cid-tdou77qi] li[data-astro-cid-tdou77qi] a[data-astro-cid-tdou77qi]{color:#e9ebee!important}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] div[data-astro-cid-tdou77qi] .bottom-top-list[data-astro-cid-tdou77qi]{margin-bottom:20px}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .social-media-icons[data-astro-cid-tdou77qi]{float:left;width:auto;padding:calc(var(--spacing,.25rem) * 0);margin-top:-10px;margin-left:-4px;display:none}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .social-media-icons[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi]{background-color:#0000;padding-block:20px;padding-inline:5px}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .social-media-icons[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi] li[data-astro-cid-tdou77qi]{margin-right:3px}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .social-media-icons[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi] li[data-astro-cid-tdou77qi]:last-of-type{margin-right:calc(var(--spacing,.25rem) * 0)}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .right[data-astro-cid-tdou77qi]{padding-inline:calc(var(--spacing,.25rem) * 0)}#ftl-footer[data-astro-cid-tdou77qi] .row[data-astro-cid-tdou77qi] .connect-text[data-astro-cid-tdou77qi]{float:left;--tw-font-weight:var(--font-weight-semibold,600);font-size:18px;font-weight:var(--font-weight-semibold,600);color:#29a8ff;text-transform:none;margin-right:10px;padding-top:10px;display:inline}#ftl-footer[data-astro-cid-tdou77qi] .footer-mobile[data-astro-cid-tdou77qi]{display:none!important}#ftl-footer[data-astro-cid-tdou77qi] .footer-wide[data-astro-cid-tdou77qi]{display:block!important}#ftl-footer[data-astro-cid-tdou77qi] .footer[data-astro-cid-tdou77qi]{border-top-style:var(--tw-border-style)!important;background-color:#292b31!important;border-top-width:0!important}#ftl-footer[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi]{margin:calc(var(--spacing,.25rem) * 0);cursor:pointer;padding-inline:5px;padding-block:calc(var(--spacing,.25rem) * 0);display:inline-block;position:relative}#ftl-footer[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi] li[data-astro-cid-tdou77qi]{text-align:center;--tw-leading:1.75;width:30px;height:30px;color:var(--color-white,#fff);border-radius:3.40282e38px;font-size:18px;line-height:1.75;list-style-type:none;display:inline-block}#ftl-footer[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi] .rss-icon[data-astro-cid-tdou77qi]{background-color:#f60}#ftl-footer[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi] .rss-icon[data-astro-cid-tdou77qi] a[data-astro-cid-tdou77qi]{color:var(--color-white,#fff)}#ftl-footer[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi] .twitter-icon[data-astro-cid-tdou77qi]{background-color:#00acec!important}#ftl-footer[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi] .facebook-icon[data-astro-cid-tdou77qi]{background-color:#3b5998!important}#ftl-footer[data-astro-cid-tdou77qi] .icons-only[data-astro-cid-tdou77qi] .linkedin-icon[data-astro-cid-tdou77qi]{background-color:#007bb5}@media screen and (max-width:400px){#ftl-footer[data-astro-cid-tdou77qi] .footer-mobile[data-astro-cid-tdou77qi]{display:block!important}#ftl-footer[data-astro-cid-tdou77qi] .footer-wide[data-astro-cid-tdou77qi]{display:none!important}#ftl-footer[data-astro-cid-tdou77qi] .social-media-icons[data-astro-cid-tdou77qi]{margin-bottom:20px}#ftl-footer[data-astro-cid-tdou77qi] .left[data-astro-cid-tdou77qi]{padding:calc(var(--spacing,.25rem) * 0)}}@media screen and (max-width:767px){#ftl-footer[data-astro-cid-tdou77qi] .connect-text[data-astro-cid-tdou77qi]{display:none!important}#ftl-footer[data-astro-cid-tdou77qi] .footerContainer[data-astro-cid-tdou77qi] .link-group[data-astro-cid-tdou77qi] li[data-astro-cid-tdou77qi]{margin-block:10px}}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}#main-navigation[data-astro-cid-sj5ssvhz]{transition:transform .3s ease-in-out,background-color .3s ease-in-out}[data-astro-cid-sj5ssvhz][data-rac-overlay] [data-astro-cid-sj5ssvhz]::-webkit-scrollbar{width:6px}[data-astro-cid-sj5ssvhz][data-rac-overlay] [data-astro-cid-sj5ssvhz]::-webkit-scrollbar-track{background:transparent}[data-astro-cid-sj5ssvhz][data-rac-overlay] [data-astro-cid-sj5ssvhz]::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}[data-astro-cid-sj5ssvhz][data-rac-overlay] [data-astro-cid-sj5ssvhz]::-webkit-scrollbar-thumb:hover{background:#fff6}[data-astro-cid-sj5ssvhz][data-rac-overlay]{scrollbar-color:rgba(255,255,255,.2) transparent;scrollbar-width:thin}#choice-footer-msg a:hover{text-decoration:underline}.raconteur-net button,.raconteur-net button.rounded-none{border-radius:0}.raconteur-net button.rounded-sm{border-radius:var(--radius-sm, .125rem)}.raconteur-net button.rounded{border-radius:var(--radius, .25rem)}.raconteur-net button.rounded-md{border-radius:var(--radius-md, .375rem)}.raconteur-net button.rounded-lg{border-radius:var(--radius-lg, .5rem)}.raconteur-net button.rounded-xl{border-radius:var(--radius-xl, .75rem)}.raconteur-net button.rounded-2xl{border-radius:var(--radius-2xl, 1rem)}.raconteur-net button.rounded-3xl{border-radius:var(--radius-3xl, 1.5rem)}.raconteur-net button.rounded-full{border-radius:9999px}.ta-subpanel[data-astro-cid-s7hm7h62]{opacity:0;pointer-events:none}.ta-subnav[data-astro-cid-s7hm7h62]:not(:has(>li:hover>.ta-subpanel)):not(:has(>li:focus-within>.ta-subpanel))>li[data-astro-cid-s7hm7h62]:first-child>.ta-subpanel[data-astro-cid-s7hm7h62]{opacity:1;pointer-events:auto}.ta-subnav[data-astro-cid-s7hm7h62]>li[data-astro-cid-s7hm7h62]:hover>.ta-subpanel[data-astro-cid-s7hm7h62],.ta-subnav[data-astro-cid-s7hm7h62]>li[data-astro-cid-s7hm7h62]:focus-within>.ta-subpanel[data-astro-cid-s7hm7h62]{opacity:1;pointer-events:auto}.nav-cards[data-astro-cid-75u2l675] .nav-panel-articles{grid-template-columns:repeat(1,minmax(0,1fr));gap:.75rem;padding-block:0}@media(min-width:768px){.nav-cards[data-astro-cid-75u2l675] .nav-panel-articles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.nav-cards[data-astro-cid-75u2l675] .nav-panel-articles{grid-template-columns:repeat(3,minmax(0,1fr))}}.nav-cards[data-astro-cid-75u2l675] .nav-panel-articles img{border-radius:.625rem}.desk-slip[data-astro-cid-wtop3wsk],.desk-facts[data-astro-cid-wtop3wsk]{border-color:color-mix(in oklab,var(--color-primary) 16%,var(--color-surface-sunken))}.wrapper>.desk-band[data-astro-cid-kyhmplve]:first-child{margin-top:calc(var(--spacing) * -5)}.wrapper>.sticker-band[data-astro-cid-k3z3juqf]:first-child{margin-top:calc(var(--spacing) * -5)}@media(prefers-reduced-motion:no-preference){.sheet-sticker[data-astro-cid-fxetvfvl] a,.sheet-sticker[data-astro-cid-fxetvfvl]>span[data-astro-cid-fxetvfvl]{animation:slap .48s cubic-bezier(.2,1.5,.4,1) backwards;animation-delay:calc(.12s + var(--i) * 55ms)}}@keyframes slap{0%{opacity:0;scale:1.35;rotate:calc(var(--tilt) * -1.5)}to{opacity:1;scale:1;rotate:var(--tilt)}}
2393</style>
2394<style>.promo-banner[data-astro-cid-lroifm73]{background:linear-gradient(to right,#fdf3e7,#fbe3d4 50%,#fdf3e7)}@keyframes bell-ring{0%,to{transform:rotate(0)}8%{transform:rotate(14deg)}16%{transform:rotate(-12deg)}24%{transform:rotate(10deg)}32%{transform:rotate(-8deg)}40%{transform:rotate(4deg)}48%{transform:rotate(0)}}@keyframes push-ping{0%{transform:scale(1);opacity:.6}75%,to{transform:scale(2.2);opacity:0}
2394}@media(any-pointer:coarse){#push-close-btn[data-astro-cid-w7xjyvkx]{display:none}}@media(prefers-reduced-motion:reduce){#push-notification-prompt[data-astro-cid-w7xjyvkx],#push-notification-prompt[data-astro-cid-w7xjyvkx] [data-astro-cid-w7xjyvkx]{animation:none!important;transition:none!important}}
2395.ticker-text[data-v-34ac2891]{transition:transform .2s ease}.ticker-text.ticker-scrolling[data-v-34ac2891]{animation:ticker-scroll-34ac2891 .4s ease-in-out;animation-fill-mode:forwards}@keyframes ticker-scroll-34ac2891{0%{transform:translate(0)}to{transform:translate(var(--scroll-distance, 0))}}
2396.checkbox input{margin-right:.75rem;cursor:pointer;-webkit-appearance:none;appearance:none;background-color:#fff;margin:2px;font:inherit;color:currentColor;width:1.5rem;height:1.5rem;min-width:1.5rem;min-height:1.5rem;border-radius:.4em;transform:translateY(-.075em);display:grid;place-content:center}.checkbox input:before{content:"";width:.65em;height:.65em;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);transform:scale(0);transform-origin:bottom left;transition:.12s transform ease-in-out;box-shadow:inset 1em 1em var(--color-primary);background-color:CanvasText}.checkbox input:checked:before{transform:scale(1)}.checkbox input:focus{outline:max(2px,.15em) solid var(--color-primary);outline-offset:max(2px,.15em)}.expand-enter-active,.expand-leave-active{transition:all .3s ease-in-out;max-height:200px}.expand-enter-from,.expand-leave-to{max-height:0;padding-top:0;padding-bottom:0;opacity:0}
2396.expand-enter-to,.expand-leave-from{max-height:200px;opacity:1}
2397/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-38667ae2],[data-v-38667ae2]:before,[data-v-38667ae2]:after,[data-v-38667ae2]::backdrop{--tw-font-weight:initial}}}a[data-v-38667ae2]{--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}a[data-v-38667ae2]:hover{text-decoration-line:underline}@property --tw-font-weight{syntax:"*";inherits:false}
2398.debug-bar[data-v-45cc7c08] ::-webkit-scrollbar{width:4px}.debug-bar[data-v-45cc7c08] ::-webkit-scrollbar-track{background:#374151}.debug-bar[data-v-45cc7c08] ::-webkit-scrollbar-thumb{background:#6b7280;border-radius:2px}.debug-bar[data-v-45cc7c08] ::-webkit-scrollbar-thumb:hover{background:#9ca3af}
2399.animate-ping-once[data-v-788e3fe6]{animation:ping-once-788e3fe6 .35s ease-out forwards}@keyframes ping-once-788e3fe6{0%{transform:scale(1)}40%{transform:scale(1.2)}70%{transform:scale(.95)}to{transform:scale(1)}}.slide-enter-active[data-v-14b806f0],.slide-leave-active[data-v-14b806f0]{transition:all .3s}.slide-enter-from[data-v-14b806f0],.slide-leave-to[data-v-14b806f0]{transform:translateY(20px);opacity:0}.slide-right-enter-active[data-v-0c8284e0],.slide-right-leave-active[data-v-0c8284e0]{transition:all .3s}.slide-right-enter-from[data-v-0c8284e0],.slide-right-leave-to[data-v-0c8284e0]{transform:translate(-100vw);opacity:0}.slide-left-enter-active[data-v-0c8284e0],.slide-left-leave-active[data-v-0c8284e0]{transition:all .3s}.slide-left-enter-from[data-v-0c8284e0],.slide-left-leave-to[data-v-0c8284e0]{transform:translate(100vw);opacity:0}.submenu-content [data-submenu][data-v-0c8284e0]{display:none}.submenu-content [data-submenu].active[data-v-0c8284e0]{display:block}
2400</style><style>astro-island,astro-slot,astro-static-slot{display:contents}</style></head> <body class="skybox-auto-collapse">  
2400<script>(()=>{var a=(s,i,o)=>{let r=async()=>{await(await s())()},t=typeof i.value=="object"?i.value:void 0,c={rootMargin:t==null?void 0:t.rootMargin},n=new IntersectionObserver(e=>{for(let l of e)if(l.isIntersecting){n.disconnect(),r();break}},c);for(let e of o.children)n.observe(e)};(self.Astro||(self.Astro={})).visible=a;window.dispatchEvent(new Event("astro:visible"));})();</script>
2400<script>(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script>
2400<script type="module">function o(e){e.dataset.imageLoaded===void 0&&(e.dataset.imageLoaded="",window.requestAnimationFrame(()=>{e.style.opacity="1";const a=e.closest("[data-lazyimage]")?.querySelector("[data-blur]");a&&(a.style.opacity="0")}))}function t(e){if(e.dataset.imageLoaded!==void 0)return;(typeof e.decode=="function"?e.decode().catch(()=>{}):Promise.resolve()).finally(()=>o(e))}function d(e){!(e instanceof HTMLImageElement)||!e.matches("[data-image]")||t(e)}document.addEventListener("load",e=>d(e.target),!0);document.addEventListener("error",e=>d(e.target),!0);document.querySelectorAll("[data-lazyimage] [data-image]").forEach(e=>{e.complete&&t(e)});</script>
2400<script>(()=>{var l=(n,t)=>{let i=async()=>{await(await n())()},e=typeof t.value=="object"?t.value:void 0,s={timeout:e==null?void 0:e.timeout};"requestIdleCallback"in window?window.requestIdleCallback(i,s):setTimeout(i,s.timeout||200)};(self.Astro||(self.Astro={})).idle=l;window.dispatchEvent(new Event("astro:idle"));})();</script>
2400<script type="module">let c=[],r=0,l=!1;const g=()=>{const e=document.getElementById("main-navigation");e&&(e.style.top=`${r}px`)},a=()=>{const e=document.getElementById("main-navigation");if(!e)return;let t=r;l||(t+=e.offsetHeight),document.body.style.setProperty("--header-height",`${t}px`)},u=()=>{const e=document.getElementById("site-navigation");if(!e)return;const t=Array.from(e.querySelectorAll('[data-nav-type="category-posts"], [data-nav-type="category-subcategories"], [data-nav-type="static-category-posts"], [data-nav-type="static-posts"][data-nav-href], [data-nav-type="static"][data-collapsible="true"]'));t.forEach(o=>{o.style.display=""}),c=[];const n=e.querySelector("[data-nav-more-button]");n?.parentElement&&(n.parentElement.style.display="");const s=n?.closest("li"),d=e.getBoundingClientRect();for(let o=t.length-1;o>=0;o--){const m=t[0].getBoundingClientRect(),i=t[o].getBoundingClientRect(),h=s&&o<t.length-1?s.getBoundingClientRect().right:-1/0;if(m.left>=d.left-1&&Math.max(i.right,h)<=d.right+1)break;t[o].style.display="none",c.unshift(t[o])}e.setAttribute("data-nav-computed",""),v()},v=()=>{const e=document.getElementById("hidden-nav-items");if(!e)return;e.innerHTML="",c.slice().reverse().forEach(n=>{const s=n.querySelector("a.more-dropdown-link");if(s instanceof HTMLAnchorElement){const d=s.cloneNode(!0);e.appendChild(d)}});const t=document.querySelector("[data-nav-more-button]");t&&t.parentElement&&(c.length>0?t.parentElement.style.display="":t.parentElement.style.display="none")};requestAnimationFrame(()=>{u(),a()});document.fonts?.ready.then(()=>{u(),a()});window.addEventListener("resize",()=>{u(),a()});document.addEventListener("navigation-content-loaded",()=>{setTimeout(()=>{u()},100)});const E=e=>{r=e.detail?.height||0,g(),a()},b=e=>{r=e.detail?.height||0,g(),a()},H=()=>{r=0,g(),a()},S=()=>{const e=document.getElementById("main-navigation");if(!e){console.error("Navigation element not found");return}let t=0,n=!1;const s=10,d=()=>{const i=document.documentElement.scrollTop;if(i<0||document.querySelector("[data-search-open='true']")||document.querySelector("[data-dropdown-open='true']")||Math.abs(i-t)<s)return;const f=i>t;if(f&&i>100&&!n){const p=-(e.offsetHeight+r);e.style.transform=`translateY(${p}px)`,n=!0,l=!0,a()}else(!f&&n||i<=100&&n)&&(e.style.transform="translateY(0)",n=!1,l=!1,a());t=i};let o=!1;const m=()=>{o||(requestAnimationFrame(()=>{d(),o=!1}),o=!0)};document.addEventListener("scroll",m),d(),a()};document.addEventListener("skybox-ad-ready",E);document.addEventListener("skybox-ad-height-changed",b);document.addEventListener("skybox-ad-hidden",H);document.addEventListener("DOMContentLoaded",S);</script>
2400<script type="module">document.addEventListener("click",t=>{const e=t.target;e instanceof Element&&e.closest("[data-newsletter-trigger]")&&(t.preventDefault(),window.dispatchEvent(new CustomEvent("open-newsletter-modal")))});</script>
2400<script type="module">document.querySelectorAll('[href="#advertising-disclaimer"]').forEach(p=>{const n=p,e=document.createElement("div");e.className="advertising-disclaimer-tooltip",e.innerHTML="We are able to offer our services for free because some vendors may pay us for web traffic or other sales opportunities. Our mission is to help technology buyers make better purchasing decisions, so we provide you with information for all vendors — even those that don't pay us.",n.style.position="relative",n.appendChild(e),p.addEventListener("mouseenter",()=>{e.classList.add("show")}),p.addEventListener("mouseleave",()=>{e.classList.remove("show")})});document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".wp-block-ta-gazelle-blocks-comp-table").forEach(n=>{const e=n,t=e.querySelector(".is-layout-flex:first-child");if(!t)return;const i=t.children,o=i.length,l=[];e.style.setProperty("--cols",o.toString()),o<=2&&e.classList.add("two-column-table");const h=o<=2?0:1;for(let a=h;a<o;a++){const d=i[a],m=d?.querySelector("img"),s=d?.textContent?.trim()||"";l.push({img:m?.src,text:s})}e.querySelectorAll(".is-layout-flex:not(:first-child)").forEach(a=>{const d=a.children,m=o<=2?0:1;for(let s=m;s<d.length&&s-m<l.length;s++){const f=d[s],r=l[s-m];if(r.img||r.text){const c=document.createElement("div");if(c.className="mobile-product-pill",r.img){const u=document.createElement("img");u.src=r.img,c.appendChild(u),c.classList.add("with-logo")}if(r.text){const u=document.createElement("span");u.textContent=r.text,c.appendChild(u),r.img||c.classList.add("text-only")}f.style.position="relative",f.appendChild(c)}}}),t&&l.length>0&&t.classList.add("hide-on-mobile")}),document.querySelectorAll(".prose .table-wrapper table").forEach(n=>{const e=(t,i)=>{const o=i.getBoundingClientRect(),l={el:i,bottom:o.bottom,left:o.left};return!t||l.bottom>t.bottom+1||l.left<t.left-1?l:t};[...n.querySelectorAll("td")].reduce(e,null)?.el.classList.add("bottom-left-cell")})});</script>
2400   <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NR3XXWX8" height="0" width="0" style="display:none;visibility:hidden" title="Google tag manageer noscript tag"></iframe></noscript>
2400<script>(function(){const gtmId = "GTM-NR3XXWX8";
2401
2402    // Patched vs the stock GTM snippet: the gtm.js script-tag injection is
2403    // pulled out of the IIFE and deferred to idle. window.dataLayer and gtm.start
2404    // event are still created synchronously, so every dataLayer.push between
2405    // now and load queues on the plain array and GTM drains it on boot —
2406    // no events are lost, they arrive later.
2407    //
2408    // Why: gtm.js is ~177KB and lands mid-load alongside the ad stack, where it
2409    // costs main thread we need for INP and competes with the LCP image for
2410    // bandwidth. Nothing in the ad path depends on it (GPT is loaded by the
2411    // Assertive Yield manager, not GTM).
2412    ;(function (w, d, s, l, i) {
2413        w[l] = w[l] || []
2414        w[l].push({
2415            "gtm.start": new Date().getTime(),
2416            event: "gtm.js",
2417        })
2418
2419        const load = function () {
2420            const f = d.getElementsByTagName(s)[0],
2421                j = d.createElement(s),
2422                dl = l != "dataLayer" ? "&l=" + l : ""
2423            j.async = true
2424            j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl
2425            f.parentNode.insertBefore(j, f)
2426        }
2427
2428        // Cap the wait: ad-heavy pages can stay busy for many seconds and may
2429        // never hit a true idle period.
2430        if ("requestIdleCallback" in w) {
2431            w.requestIdleCallback(load, { timeout: 4000 })
2432        } else {
2433            w.setTimeout(load, 2000)
2434        }
2435    })(window, document, "script", "dataLayer", gtmId)
2436})();</script>
2436<div class="fixed top-0 left-0 right-0 z-1000 bg-white shadow-sm transition-transform duration-300 ease-in-out print:static" id="main-navigation"> <div class="border-t-19 border-primary"> <div class="flex items-center justify-between h-[60px] px-2 md:px-4 self-center w-full max-w-[min(100%,1200px)] mx-auto"> <div class="pl-4 mr-4 md:hidden"> <astro-island uid="AT27U" prefix="s23" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/MobileNavigation.DKwrTyEy.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;mode&quot;:[0,&quot;push&quot;],&quot;hasDrawerTop&quot;:[0,false],&quot;hasSubmenus&quot;:[0,true],&quot;class&quot;:[0],&quot;data-mobile-navigation&quot;:[0,true]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;MobileNavigationVue&quot;,&quot;value&quot;:true}" await-children=""><div data-mobile-navigation="true" data-v-0c8284e0=""><button class="nav-icon aspect-square h-full flex" aria-label="Open navigation menu" aria-expanded="false" data-v-0c8284e0=""><!----><!--[--><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu-icon lucide-menu h-[30px] w-[30px]" aria-hidden="true" data-v-0c8284e0=""><path d="M4 5h16" /><path d="M4 12h16" /><path d="M4 19h16" /></svg><!--]--></button><div class="nav-drawer absolute left-0 z-100 w-screen overflow-y-auto overscroll-contain pb-[100px]" style="display:none;" data-v-0c8284e0=""><!----><ul class="nav-drawer-list flex flex-col justify-center gap-4 p-[20px]" data-v-0c8284e0=""><!--[--><astro-slot name="navigation-items"><li class="nav-drawer-divider w-full" data-nav-slot="0"> <button class="nav-drawer-item" data-nav-item="0" aria-expanded="false"> How to Cite <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right h-5 w-5" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg> </button> </li><li class="nav-drawer-divider w-full" data-nav-slot="1"> <button class="nav-drawer-item" data-nav-item="1" aria-expanded="false"> Language &amp; Lit <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right h-5 w-5" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg> </button> </li><li class="nav-drawer-divider w-full" data-nav-slot="2"> <button class="nav-drawer-item" data-nav-item="2" aria-expanded="false"> Rhyme &amp; Rhythm <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right h-5 w-5" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg> </button> </li><li class="nav-drawer-divider w-full" data-nav-slot="3"> <button class="nav-drawer-item" data-nav-item="3" aria-expanded="false"> The Rewrite <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right h-5 w-5" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg> </button> </li></astro-slot><!--]--></ul><!----></div><div class="nav-drawer shadow-l group absolute left-0 z-100 w-screen overflow-y-auto overscroll-contain p-[20px]" style="display:none;" data-v-0c8284e0=""><button class="text-primary flex items-center gap-2 font-semibold" data-v-0c8284e0=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left-icon lucide-chevron-left h-5 w-5" aria-hidden="true" data-v-0c8284e0=""><path d="m15 18-6-6 6-6" /></svg> Back to Menu </button><!--[--><astro-slot name="submenu-content"><div class="h-full w-full" data-nav-submenu="0"> <div class="wrap mx-auto"> <div class="flex flex-col gap-6 py-5"> <div class="flex flex-col gap-6"><div class="flex flex-col gap-4"><div class="flex flex-col gap-2"><div class="nav-panel-label">Related Topics</div><div class="flex flex-col gap-1"><a class="nav-panel-link" href="/pen-and-the-pad/"> Pen and the Pad </a></div></div></div><div class="flex-1"><div class="flex items-center justify-between"><div class="nav-panel-label">Articles</div><a class="flex items-center gap-1 text-[14px]/[20px] hover:underline" href="/how-to-cite/">
2436 View All<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right h-4 w-4" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg> </a></div><astro-island uid="1uJznD" prefix="s2" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicCategoryPosts.BdSPUR1t.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;How to Cite&quot;],&quot;categoryId&quot;:[0,18998],&quot;href&quot;:[0,&quot;/how-to-cite/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18998],&quot;slug&quot;:[0,&quot;how-to-cite&quot;],&quot;name&quot;:[0,&quot;How to Cite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/how-to-cite/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/how-to-cite/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/how-to-cite/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/how-to-cite/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;How to Cite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/how-to-cite/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;How to Cite&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[[0,{&quot;name&quot;:[0,&quot;Pen and the Pad&quot;],&quot;href&quot;:[0,&quot;/pen-and-the-pad/&quot;]}]]]}],&quot;variant&quot;:[0,&quot;mobile&quot;],&quot;locale&quot;:[0,&quot;en&quot;]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicCategoryPosts&quot;,&quot;value&quot;:true}" await-children=""><div data-dynamic-posts="" class="nav-panel-articles"><div class="flex items-center justify-center py-8"><div class="text-gray-400">Hover to load posts</div></div></div><!--astro:end--></astro-island></div></div> </div> </div> </div><div class="h-full w-full" data-nav-submenu="1"> <div class="wrap mx-auto"> <div class="flex flex-col gap-6 py-5"> <div class="flex flex-col gap-6"><div class="flex-1"><div class="flex items-center justify-between"><div class="nav-panel-label">Articles</div><a class="flex items-center gap-1 text-[14px]/[20px] hover:underline" href="/language-lit/"> View All<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right h-4 w-4" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg> </a></div><astro-island uid="N1prE" prefix="s3" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicCategoryPosts.BdSPUR1t.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;Language & Lit&quot;],&quot;categoryId&quot;:[0,18995],&quot;href&quot;:[0,&quot;/language-lit/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18995],&quot;slug&quot;:[0,&quot;language-lit&quot;],&quot;name&quot;:[0,&quot;Language & Lit&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/language-lit/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/language-lit/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/language-lit/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/language-lit/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;Language & Lit&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/language-lit/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;Language & Lit&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[]]}],&quot;variant&quot;:[0,&quot;mobile&quot;],&quot;locale&quot;:[0,&quot;en&quot;]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicCategoryPosts&quot;,&quot;value&quot;:true}" await-children=""><div data-dynamic-posts="" class="nav-panel-articles"><div class="flex items-center justify-center py-8"><div class="text-gray-400">Hover to load posts</div></div></div><!--astro:end--></astro-island></div></div> </div> </div> </div><div class="h-full w-full" data-nav-submenu="2"> <div class="wrap mx-auto"> <div class="flex flex-col gap-6 py-5"> <div class="flex flex-col gap-6"><div class="flex-1"><div class="flex items-center justify-between"><div class="nav-panel-label">Articles</div><a class="flex items-center gap-1 text-[14px]/[20px] hover:underline" href="/rhyme-rhythm/"> View All<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right h-4 w-4" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg> </a></div><astro-island uid="X7sXX" prefix="s4" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicCategoryPosts.BdSPUR1t.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;categoryId&quot;:[0,18997],&quot;href&quot;:[0,&quot;/rhyme-rhythm/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18997],&quot;slug&quot;:[0,&quot;rhyme-rhythm&quot;],&quot;name&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/rhyme-rhythm/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[]]}],&quot;variant&quot;:[0,&quot;mobile&quot;],&quot;locale&quot;:[0,&quot;en&quot;]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicCategoryPosts&quot;,&quot;value&quot;:true}" await-children=""><div data-dynamic-posts="" class="nav-panel-articles"><div class="flex items-center justify-center py-8"><div class="text-gray-400">Hover to load posts</div></div></div><!--astro:end--></astro-island></div></div> </div> </div> </div><div class="h-full w-full" data-nav-submenu="3"> <div class="wrap mx-auto"> <div class="flex flex-col gap-6 py-5"> <div class="flex flex-col gap-6"><div class="flex-1"><div class="flex items-center justify-between"><div class="nav-panel-label">Articles</div><a class="flex items-center gap-1 text-[14px]/[20px] hover:underline" href="/the-rewrite/">
2436 View All<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right h-4 w-4" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg> </a></div><astro-island uid="xRLmR" prefix="s5" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicCategoryPosts.BdSPUR1t.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;The Rewrite&quot;],&quot;categoryId&quot;:[0,18996],&quot;href&quot;:[0,&quot;/the-rewrite/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18996],&quot;slug&quot;:[0,&quot;the-rewrite&quot;],&quot;name&quot;:[0,&quot;The Rewrite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/the-rewrite/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/the-rewrite/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/the-rewrite/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/the-rewrite/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;The Rewrite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/the-rewrite/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;The Rewrite&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[]]}],&quot;variant&quot;:[0,&quot;mobile&quot;],&quot;locale&quot;:[0,&quot;en&quot;]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicCategoryPosts&quot;,&quot;value&quot;:true}" await-children=""><div data-dynamic-posts="" class="nav-panel-articles"><div class="flex items-center justify-center py-8"><div class="text-gray-400">Hover to load posts</div></div></div><!--astro:end--></astro-island></div></div> </div> </div> </div></astro-slot><!--]--></div></div><template data-astro-template="drawer-top"></template><!--astro:end--></astro-island> </div> <a class="block max-h-[90px] px-4" href="/">  <div class="max-h-[35px] w-auto self-start shrink relative">  <img src="https://penandthepad.com/astrostatic/3a22e5c5/_image/?href=%2F_astro%2Fpenandthepad.CAcBzb0Z.svg&w=205&h=70&f=svg" alt="Pen and the Pad Logo" loading="eager" fetchpriority="high" showPlaceholder="false" data-image="true" style="opacity:1" decoding="async" width="205" height="70" class="max-h-[35px] w-auto self-start shrink transition-opacity duration-300"> </div>   </a> <div class="flex items-center gap-4">  <div class="flex items-center gap-5 px-4"> <div class="h-[23px] md:flex hidden"> <div class="flex items-center">  </div> </div>   <div> <astro-island uid="lxyul" prefix="s1" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/ButtonNavigationSearch.B7sFWfe1.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;domain&quot;:[0,&quot;penandthepad.com&quot;]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;ButtonNavigationSearch&quot;,&quot;value&quot;:true}" await-children=""><div class="nav-search-root z-50 shrink-0" data-search-open="false" data-v-14b806f0=""><button class="nav-icon" aria-label="Toggle search" data-v-14b806f0=""><!----><!--[--><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search-icon lucide-search w-6 h-6" aria-hidden="true" data-v-14b806f0=""><path d="m21 21-4.34-4.34" /><circle cx="11" cy="11" r="8" /></svg><!--]--></button><!----></div><!--astro:end--></astro-island> </div>  </div> </div> </div> </div> <div class="hidden md:block"> <div class="z-50"> <div class="border-primary/25 flex w-full items-center justify-center border-y bg-white"> <ul class="container mx-auto flex w-full max-w-[min(100%,1200px)] justify-center" id="site-navigation"> <li class="group [&_.more-dropdown-link]:hidden" data-nav-href="/how-to-cite/" data-nav-type="category-posts"><astro-island uid="Z2fBkBt" prefix="s27" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicNavigationDropdown.BVD6Rpyr.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;How to Cite&quot;],&quot;categoryId&quot;:[0,18998],&quot;href&quot;:[0,&quot;/how-to-cite/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18998],&quot;slug&quot;:[0,&quot;how-to-cite&quot;],&quot;name&quot;:[0,&quot;How to Cite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/how-to-cite/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/how-to-cite/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/how-to-cite/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/how-to-cite/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;How to Cite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/how-to-cite/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;How to Cite&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[[0,{&quot;name&quot;:[0,&quot;Pen and the Pad&quot;],&quot;href&quot;:[0,&quot;/pen-and-the-pad/&quot;]}]]]}],&quot;domain&quot;:[0,&quot;penandthepad.com&quot;],&quot;href&quot;:[0,&quot;/how-to-cite/&quot;],&quot;translatedLabel&quot;:[0,&quot;How to Cite&quot;]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicNavigationDropdown&quot;,&quot;value&quot;:true}" await-children=""><!--[--><a href="/how-to-cite/" class="more-dropdown-link nav-more-link">How to Cite</a><div data-dropdown-open="false"><button class="nav-item group" data-open="false"><!--[-->How to Cite <!--]--><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down nav-item-chevron w-
24365 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6" /></svg></button><div class="w-screen left-0 nav-panel absolute" style="display:none;"><!--[--><div class="nav-panel-body wrapper"><div><!--[--><astro-slot><div class="flex gap-6"> <div class="flex max-w-[250px] flex-col gap-4"> <div class="flex flex-col gap-2"> <div class="nav-panel-label">Related Topics</div> <div class="flex flex-col gap-1"> <a class="nav-panel-link" href="/pen-and-the-pad/"> Pen and the Pad </a> </div> </div> </div> <div class="flex-1"> <div class="flex items-center justify-between"> <div class="nav-panel-label">Top Articles</div> <a href="/how-to-cite/">  <button class="button cursor-pointer tracking-[1.2px] font-semibold font-mono rounded-full flex items-center transition uppercase gap-[10px] min-h-[30px] px-4 py-1 text-[12px]/[16px] text-primary border-2 border-primary hover:bg-primary hover:text-primary-foreground w-fit"> View All<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right-icon lucide-arrow-right h-4 w-4" aria-hidden="true"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg>  </button>  </a> </div> <div class="@container max-h-[60vh] overflow-y-auto"> <astro-island uid="2kmi6d" prefix="s6" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicCategoryPosts.BdSPUR1t.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;How to Cite&quot;],&quot;categoryId&quot;:[0,18998],&quot;href&quot;:[0,&quot;/how-to-cite/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18998],&quot;slug&quot;:[0,&quot;how-to-cite&quot;],&quot;name&quot;:[0,&quot;How to Cite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/how-to-cite/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/how-to-cite/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/how-to-cite/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/how-to-cite/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;How to Cite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/how-to-cite/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;How to Cite&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[[0,{&quot;name&quot;:[0,&quot;Pen and the Pad&quot;],&quot;href&quot;:[0,&quot;/pen-and-the-pad/&quot;]}]]]}],&quot;variant&quot;:[0,&quot;desktop&quot;],&quot;locale&quot;:[0,&quot;en&quot;],&quot;featureKicker&quot;:[0],&quot;featureCta&quot;:[0],&quot;featureImage&quot;:[0],&quot;featureOnly&quot;:[0]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicCategoryPosts&quot;,&quot;value&quot;:true}" await-children=""><div data-dynamic-posts="" class="nav-panel-articles"><div class="flex items-center justify-center py-8"><div class="text-gray-400">Hover to load posts</div></div></div><!--astro:end--></astro-island> </div> </div> </div></astro-slot><!--]--></div></div><!--]--></div></div><!--]--><!--astro:end--></astro-island></li><li class="group [&_.more-dropdown-link]:hidden" data-nav-href="/language-lit/" data-nav-type="category-posts"><astro-island uid="ZWjlVL" prefix="s24" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicNavigationDropdown.BVD6Rpyr.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;Language & Lit&quot;],&quot;categoryId&quot;:[0,18995],&quot;href&quot;:[0,&quot;/language-lit/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18995],&quot;slug&quot;:[0,&quot;language-lit&quot;],&quot;name&quot;:[0,&quot;Language & Lit&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/language-lit/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/language-lit/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/language-lit/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/language-lit/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;Language & Lit&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/language-lit/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;Language & Lit&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[]]}],&quot;domain&quot;:[0,&quot;penandthepad.com&quot;],&quot;href&quot;:[0,&quot;/language-lit/&quot;],&quot;translatedLabel&quot;:[0,&quot;Language & Lit&quot;]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicNavigationDropdown&quot;,&quot;value&quot;:true}" await-children=""><!--[--><a href="/language-lit/" class="more-dropdown-link nav-more-link">Language &amp; Lit</a><div data-dropdown-open="false"><button class="nav-item group" data-open="false"><!--[-->Language &amp; Lit <!--]--><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down nav-item-chevron w-
24365 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6" /></svg></button><div class="w-screen left-0 nav-panel absolute" style="display:none;"><!--[--><div class="nav-panel-body wrapper"><div><!--[--><astro-slot><div class="flex gap-6">  <div class="flex-1"> <div class="flex items-center justify-between"> <div class="nav-panel-label">Top Articles</div> <a href="/language-lit/">  <button class="button cursor-pointer tracking-[1.2px] font-semibold font-mono rounded-full flex items-center transition uppercase gap-[10px] min-h-[30px] px-4 py-1 text-[12px]/[16px] text-primary border-2 border-primary hover:bg-primary hover:text-primary-foreground w-fit"> View All<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right-icon lucide-arrow-right h-4 w-4" aria-hidden="true"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg>  </button>  </a> </div> <div class="@container max-h-[60vh] overflow-y-auto"> <astro-island uid="1EUm1k" prefix="s7" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicCategoryPosts.BdSPUR1t.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;Language & Lit&quot;],&quot;categoryId&quot;:[0,18995],&quot;href&quot;:[0,&quot;/language-lit/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18995],&quot;slug&quot;:[0,&quot;language-lit&quot;],&quot;name&quot;:[0,&quot;Language & Lit&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/language-lit/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/language-lit/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/language-lit/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/language-lit/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;Language & Lit&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/language-lit/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;Language & Lit&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[]]}],&quot;variant&quot;:[0,&quot;desktop&quot;],&quot;locale&quot;:[0,&quot;en&quot;],&quot;featureKicker&quot;:[0],&quot;featureCta&quot;:[0],&quot;featureImage&quot;:[0],&quot;featureOnly&quot;:[0]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicCategoryPosts&quot;,&quot;value&quot;:true}" await-children=""><div data-dynamic-posts="" class="nav-panel-articles"><div class="flex items-center justify-center py-8"><div class="text-gray-400">Hover to load posts</div></div></div><!--astro:end--></astro-island> </div> </div> </div></astro-slot><!--]--></div></div><!--]--></div></div><!--]--><!--astro:end--></astro-island></li><li class="group [&_.more-dropdown-link]:hidden" data-nav-href="/rhyme-rhythm/" data-nav-type="category-posts"><astro-island uid="eC5Sh" prefix="s25" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicNavigationDropdown.BVD6Rpyr.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;categoryId&quot;:[0,18997],&quot;href&quot;:[0,&quot;/rhyme-rhythm/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18997],&quot;slug&quot;:[0,&quot;rhyme-rhythm&quot;],&quot;name&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/rhyme-rhythm/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[]]}],&quot;domain&quot;:[0,&quot;penandthepad.com&quot;],&quot;href&quot;:[0,&quot;/rhyme-rhythm/&quot;],&quot;translatedLabel&quot;:[0,&quot;Rhyme & Rhythm&quot;]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicNavigationDropdown&quot;,&quot;value&quot;:true}" await-children=""><!--[--><a href="/rhyme-rhythm/" class="more-dropdown-link nav-more-link">Rhyme &amp; Rhythm</a><div data-dropdown-open="false"><button class="nav-item group" data-open="false"><!--[-->Rhyme &amp; Rhythm <!--]--><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down nav-item-chevron w-
24365 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6" /></svg></button><div class="w-screen left-0 nav-panel absolute" style="display:none;"><!--[--><div class="nav-panel-body wrapper"><div><!--[--><astro-slot><div class="flex gap-6">  <div class="flex-1"> <div class="flex items-center justify-between"> <div class="nav-panel-label">Top Articles</div> <a href="/rhyme-rhythm/">  <button class="button cursor-pointer tracking-[1.2px] font-semibold font-mono rounded-full flex items-center transition uppercase gap-[10px] min-h-[30px] px-4 py-1 text-[12px]/[16px] text-primary border-2 border-primary hover:bg-primary hover:text-primary-foreground w-fit"> View All<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right-icon lucide-arrow-right h-4 w-4" aria-hidden="true"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg>  </button>  </a> </div> <div class="@container max-h-[60vh] overflow-y-auto"> <astro-island uid="2wEfiX" prefix="s8" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicCategoryPosts.BdSPUR1t.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;categoryId&quot;:[0,18997],&quot;href&quot;:[0,&quot;/rhyme-rhythm/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18997],&quot;slug&quot;:[0,&quot;rhyme-rhythm&quot;],&quot;name&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/rhyme-rhythm/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/rhyme-rhythm/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;Rhyme & Rhythm&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[]]}],&quot;variant&quot;:[0,&quot;desktop&quot;],&quot;locale&quot;:[0,&quot;en&quot;],&quot;featureKicker&quot;:[0],&quot;featureCta&quot;:[0],&quot;featureImage&quot;:[0],&quot;featureOnly&quot;:[0]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicCategoryPosts&quot;,&quot;value&quot;:true}" await-children=""><div data-dynamic-posts="" class="nav-panel-articles"><div class="flex items-center justify-center py-8"><div class="text-gray-400">Hover to load posts</div></div></div><!--astro:end--></astro-island> </div> </div> </div></astro-slot><!--]--></div></div><!--]--></div></div><!--]--><!--astro:end--></astro-island></li><li> <astro-island uid="1FARGE" prefix="s22" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/ButtonNavigationDropdown.CT9-r434.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;width&quot;:[0,&quot;auto&quot;],&quot;data-nav-more-button&quot;:[0,true]}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;ButtonNavigationDropdown&quot;,&quot;value&quot;:true}" await-children=""><div class="relative" data-dropdown-open="false" data-nav-more-button="true"><button class="nav-item group" data-open="false"><!--[--><astro-slot>More </astro-slot><!--]--><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down nav-item-chevron w-
24365 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6" /></svg></button><div class="nav-panel-more w-[300px] border-x left-1/2 transform -translate-x-1/2 nav-panel absolute" style="display:none;"><!--[--><astro-slot name="content"> <div class="nav-panel-surface w-full"> <div class="wrap mx-auto"> <div class="flex flex-col py-5" id="hidden-nav-items"></div> </div> </div> </astro-slot><!--]--></div></div><!--astro:end--></astro-island> </li><li class="group [&_.more-dropdown-link]:hidden" data-nav-href="/the-rewrite/" data-nav-type="category-posts"><astro-island uid="2tHIlF" prefix="s26" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicNavigationDropdown.BVD6Rpyr.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;The Rewrite&quot;],&quot;categoryId&quot;:[0,18996],&quot;href&quot;:[0,&quot;/the-rewrite/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18996],&quot;slug&quot;:[0,&quot;the-rewrite&quot;],&quot;name&quot;:[0,&quot;The Rewrite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/the-rewrite/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/the-rewrite/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/the-rewrite/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/the-rewrite/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;The Rewrite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/the-rewrite/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;The Rewrite&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[]]}],&quot;domain&quot;:[0,&quot;penandthepad.com&quot;],&quot;href&quot;:[0,&quot;/the-rewrite/&quot;],&quot;translatedLabel&quot;:[0,&quot;The Rewrite&quot;]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicNavigationDropdown&quot;,&quot;value&quot;:true}" await-children=""><!--[--><a href="/the-rewrite/" class="more-dropdown-link nav-more-link">The Rewrite</a><div data-dropdown-open="false"><button class="nav-item group" data-open="false"><!--[-->The Rewrite <!--]--><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down nav-item-chevron w-5 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6" /></svg></button><div class="w-screen left-0 nav-panel absolute" style="display:none;"><!--[--><div class="nav-panel-body wrapper"><div><!--[--><astro-slot><div class="flex gap-6">  <div class="flex-1"> <div class="flex items-center justify-between"> <div class="nav-panel-label">Top Articles</div> <a href="/the-rewrite/">  <button class="button cursor-pointer tracking-[1.2px] font-semibold font-mono rounded-full flex items-center transition uppercase gap-[10px] min-h-[30px] px-4 py-1 text-[12px]/[16px] text-primary border-2 border-primary hover:bg-primary hover:text-primary-foreground w-fit"> View All<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right-icon lucide-arrow-right h-4 w-4" aria-hidden="true"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg>  </button>  </a> </div> <div class="@container max-h-[60vh] overflow-y-auto"> <astro-island uid="1BKLI3" prefix="s9" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/DynamicCategoryPosts.BdSPUR1t.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{&quot;navitem&quot;:[0,{&quot;type&quot;:[0,&quot;category-posts&quot;],&quot;label&quot;:[0,&quot;The Rewrite&quot;],&quot;categoryId&quot;:[0,18996],&quot;href&quot;:[0,&quot;/the-rewrite/&quot;],&quot;category&quot;:[0,{&quot;id&quot;:[0,18996],&quot;slug&quot;:[0,&quot;the-rewrite&quot;],&quot;name&quot;:[0,&quot;The Rewrite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;link&quot;:[0,&quot;/the-rewrite/&quot;],&quot;parent&quot;:[0,19000],&quot;taxonomy&quot;:[0,&quot;category&quot;],&quot;expert&quot;:[0],&quot;_links&quot;:[0,{&quot;self&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/the-rewrite/&quot;]}]]],&quot;wp:post_type&quot;:[1,[[0,{&quot;href&quot;:[0,&quot;https://penandthepad.com/the-rewrite/posts/&quot;]}]]]}],&quot;meta&quot;:[0,{&quot;canonical&quot;:[0,&quot;https://penandthepad.com/the-rewrite/&quot;],&quot;indexable&quot;:[0,true],&quot;yoast_head_json&quot;:[0,{&quot;title&quot;:[0,&quot;The Rewrite&quot;],&quot;description&quot;:[0,&quot;&quot;],&quot;robots&quot;:[0,{}],&quot;canonical&quot;:[0,&quot;https://penandthepad.com/the-rewrite/&quot;],&quot;og_locale&quot;:[0,&quot;en_US&quot;],&quot;og_type&quot;:[0,&quot;object&quot;],&quot;og_title&quot;:[0,&quot;The Rewrite&quot;],&quot;og_description&quot;:[0,&quot;&quot;],&quot;og_image&quot;:[0],&quot;schema&quot;:[0,{}]}]}]}],&quot;posts&quot;:[1,[]],&quot;subcategories&quot;:[1,[]]}],&quot;variant&quot;:[0,&quot;desktop&quot;],&quot;locale&quot;:[0,&quot;en&quot;],&quot;featureKicker&quot;:[0],&quot;featureCta&quot;:[0],&quot;featureImage&quot;:[0],&quot;featureOnly&quot;:[0]}" ssr="" client="visible" opts="{&quot;name&quot;:&quot;DynamicCategoryPosts&quot;,&quot;value&quot;:true}" await-children=""><div data-dynamic-posts="" class="nav-panel-articles"><div class="flex items-center justify-center py-8"><div class="text-gray-400">Hover to load posts</div></div></div><!--astro:end--></astro-island> </div> </div> </div></astro-slot><!--]--></div></div><!--]--></div></div><!--]--><!--astro:end--></astro-island></li> </ul> </div> </div>   </div> <div class="absolute top-0 left-0 w-full h-full bg-primary/5 -z-1"></div> </div> <!-- Spacer to prevent content jump when navigation becomes fixed --> <div id="nav-spacer" class="h-[80px] md:h-[120px]"></div>  <a class="promo-banner flex items-center justify-center gap-3 px-4 py-2.5 text-center text-sm font-medium text-secondary hover:underline" data-astro-cid-lroifm73="true" href="/vocabulary-study-game/"> <span class="shrink-0 rounded-full border border-secondary/40 px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide" data-astro-cid-lroifm73="">NEW</span><span data-astro-cid-lroifm73="">Learn new words with our Vocabulary Swiper!</span> </a> <div class="wrapper flex flex-col b penandthepad-com pt-5">    <div class="w-full md:w-[1024px]! mx-auto px-4 py-6"> <div class="prose">  <h1 class="h1"> <span>About Pen and the Pad</span> </h1> <p>
2437The Pen &amp; The Pad is a go-to resource for writers. Whether
2438                you're a poet, novelist or just want to improve your
2439                communication skills, The Pen &amp; The Pad has all the information
2440                to help. Contact us here to contribute or learn more.
2441</p> <h2>Get In Touch</h2> <h3>Brand Partnerships</h3> <p>
2442To inquire about advertising opportunities, please email
2443<a href="mailto:[email protected]">[email protected]</a>.
2444</p> <h3>Contact</h3> <p>
2445Have a question, comment or concern? Send a message to
2446<a href="mailto:[email protected]">[email protected]</a>.
2447</p>  </div>   </div>   </div> <div class="wrapper relative bg-primary text-primary-foreground pt-[44px] pb-[9px] z-999">
2447 <div class="flex flex-col lg:grid lg:grid-cols-5 gap-x-[64px] space-y-[24px] lg:space-y-[16px]"> <div class="space-y-[24px] lg:space-y-[16px] lg:col-span-3"> <a class="inline-block" href="/">  <div class="max-w-[200px] self-start md:ml-[unset] invert brightness-0 contrast-200 relative">  <img src="https://penandthepad.com/astrostatic/3a22e5c5/_image/?href=%2F_astro%2Fpenandthepad.CAcBzb0Z.svg&w=205&h=70&f=svg" alt="Pen and the Pad Logo" data-image="true" style="opacity:1" loading="lazy" decoding="async" fetchpriority="auto" width="205" height="70" class="max-w-[200px] self-start md:ml-[unset] invert brightness-0 contrast-200 transition-opacity duration-300"> </div>   </a> <p class="leading-6"> Pen and the Pad is your resource for writing, grammar, citations, and the craft of language and literature. </p> <div class="flex gap-6 justify-center lg:justify-normal h-fit"> <div class="flex items-center gap-3 gap-4">  </div> </div> </div> <div class="flex gap-x-[64px] lg:col-span-2 justify-center lg:justify-start"> <div class="space-y-[24px] lg:space-y-[16px]"> <h3 class="h3 uppercase font-bold text-[16px]/[16px] text-white">Company</h3> <div class="grid space-y-[12px]"> <a class="text-primary-foreground hover:text-primary-foreground/80 text-[16px]/[16px] text-nowrap" href="/about-us/"> About us </a> <a class="text-primary-foreground hover:text-primary-foreground/80 text-[16px]/[16px] text-nowrap" href="https://technologyadvice.com/contact-us/" target="_blank" rel="nofollow"> Contact us </a> <a class="text-primary-foreground hover:text-primary-foreground/80 text-[16px]/[16px] text-nowrap" href="https://technologyadvice.com/contact-us/?utm_medium=portfolio_footer&utm_campaign=advertise_contact-us&utm-source=penandthepad" target="_blank" rel="nofollow"> Advertise with us </a>  </div> </div> <div class="space-y-[24px] lg:space-y-[16px]">  <h3 class="h3 uppercase font-bold text-[16px]/[16px] text-white">Categories</h3> <div class="grid space-y-[12px]"> <a class="text-primary-foreground hover:text-primary-foreground/80 text-[16px]/[20px] text-ellipsis line-clamp-1" href="/how-to-cite/"> How to Cite </a><a class="text-primary-foreground hover:text-primary-foreground/80 text-[16px]/[20px] text-ellipsis line-clamp-1" href="/language-lit/"> Language &amp; Lit </a><a class="text-primary-foreground hover:text-primary-foreground/80 text-[16px]/[20px] text-ellipsis line-clamp-1" href="/rhyme-rhythm/"> Rhyme &amp; Rhythm </a><a class="text-primary-foreground hover:text-primary-foreground/80 text-[16px]/[20px] text-ellipsis line-clamp-1" href="/the-rewrite/"> The Rewrite </a> </div>  </div> </div> </div> </div> <div class="wrapper relative bg-white pt-[9px] pb-[100px] z-999"> <div class="flex flex-col items-center lg:grid lg:grid-cols-2 gap-x-[64px] space-y-[24px] lg:space-y-[16px]"> <div class="flex flex-col gap-4 col-span-full text-[12px]/[21px] text-secondary"> <div class="space-y-2"> <p class="font-bold"> Property of TechnologyAdvice. ©  2026 TechnologyAdvice. All Rights Reserved </p> <p> Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace. </p> </div> <div class="flex gap-4 items-center font-bold uppercase"> <a class="text-secondary hover:text-primary" href="/terms-conditions/"> Terms of Service </a> <a class="text-secondary hover:text-primary" href="/privacy-policy/"> Privacy Policy </a> <a class="text-secondary hover:text-primary" href="https://technologyadvice.com/privacy-policy/ccpa-opt-out-form/" target="_blank" rel="nofollow"> California - Do Not Sell My Information </a> </div> <div id="choice-footer-msg" class="text-[12px]/[21px]"></div> </div> </div> </div><astro-island uid="Z11ETh1" prefix="s0" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/BackToTop.BI7COpem.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{}" ssr="" client="idle" opts="{&quot;name&quot;:&quot;BackToTop&quot;,&quot;value&quot;:true}" await-children=""><button id="back-to-top" class="fixed right-4 z-1001 cursor-pointer transition-all duration-500 ease-in-out rounded-full hover:shadow-[0px_0px_3px_#71717a] hover:scale-105 bg-primary text-primary-foreground border-none p-0 opacity-0 translate-y-[70px]" style="bottom:calc(
2448                var(--sticky-ad-height, 0px) + var(--floating-bar-height, 0px) +
2449                    16px
2450            );" aria-label="Back to top"><svg width="48" height="48" viewBox="0 0 48 48" class="block" aria-hidden="true"><circle cx="24" cy="24" r="21" fill="none" stroke="currentColor" stroke-width="3" opacity="0.2" /><circle cx="24" cy="24" r="21" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-dasharray="131.94689145077132" stroke-dashoffset="131.94689145077132" transform="rotate(-90 24 24)" style="transition:stroke-dashoffset 150ms ease;" /></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up-icon lucide-chevron-up absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2" aria-hidden="true"><path d="m18 15-6-6-6 6" /></svg></button><!--astro:end--></astro-island>  
2450<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":"190db4ef16d546b18839d2ef3eeb7b8a","r":1,"spa":2}' crossorigin="anonymous"></script>
2450
2451</body></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.