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/png" sizes="192x192" href="https://penandthepad.com/favicon-192x192.png"><link rel="icon" type="image/png" sizes="96x96" href="https://penandthepad.com/favicon-96x96.png"><link rel="icon" type="image/png" sizes="32x32" href="https://penandthepad.com/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="https://penandthepad.com/favicon-16x16.png"><link rel="icon" type="image/x-icon" href="https://penandthepad.com/favicon.ico"><link rel="preconnect" href="https://pbs-us-east.ay.delivery" crossorigin=""><link rel="preconnect" href="https://c.amazon-adsystem.com" crossorigin=""><link rel="preconnect" href="https://cdn.id5-sync.com" crossorigin=""><link rel="preconnect" href="https://securepubads.g.doubleclick.net"><link rel="preconnect" href="https://v4EcqHoPC3remy2Dv.ay.delivery"><link rel="preconnect" href="https://cmp.inmobi.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""><link rel="preconnect" href="https://cd.connatix.com" crossorigin=""><link rel="preconnect" href="https://capi.connatix.com" crossorigin=""><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://v4EcqHoPC3remy2Dv.ay.delivery/manager/v4EcqHoPC3remy2Dv" as="script" data-no-early-hint=""><link rel="preload" href="https://securepubads.g.doubleclick.net/tag/js/gpt.js" as="script" data-no-early-hint=""><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 type="module">const o=new WeakMap,r=new Set,h=10,f=t=>{let e=0;for(const n of t.children)e=Math.max(e,n.offsetHeight);return e},w=t=>{const e=f(t);e<h||e>(o.get(t)??0)&&(o.set(t,e),t.style.setProperty("min-height",`${e}px`,"important"))},u=1e3,i=new WeakMap,c=t=>{clearTimeout(i.get(t)),i.set(t,window.setTimeout(()=>w(t),u))},m=new ResizeObserver(t=>{for(const e of t)c(e.target)}),d=t=>{r.has(t)||(r.add(t),m.observe(t))},a=t=>{for(const e of t.querySelectorAll("[data-ad-slot]"))d(e)};a(document);new MutationObserver(t=>{for(const e of t)for(const n of e.addedNodes)n instanceof HTMLElement&&(n.matches("[data-ad-slot]")&&d(n),a(n))}).observe(document.body,{childList:!0,subtree:!0});let s=window.innerWidth;window.addEventListener("resize",()=>{if(window.innerWidth!==s){s=window.innerWidth;for(const t of r)o.delete(t),t.style.removeProperty("min-height"),c(t)}});</script>
1
1<script>(function(){const domain = "penandthepad.com"; 2const targeting = {"env":"prod","stage":"prod","url":"penandthepad.com/pen-and-the-pad/","hostname":"penandthepad.com","edge_country":"TW","cid":"pen-and-the-pad","path":"pen-and-the-pad","category":"pen-and-the-pad","topic":"pen-and-the-pad","news":"no"}; 3 4 window._vars = { 5 ...(window?._vars ?? {}), 6 domain, 7 targeting, 8 } 9 })();</script>
9
9<script> 10 ;(() => { 11 // The sweep runs once the AY manager loads â well after first paint, 12 // so yanking the boxes out of the layout right there registers as 13 // CLS. Blank each box immediately (visibility keeps its space), and 14 // drop the space on the next discrete input, when the shift falls in 15 // the CLS input-exclusion window. Below-viewport boxes could collapse 16 // immediately without penalty, but one code path is enough. 17 let lastInput = -Infinity 18 const noteInput = () => { 19 lastInput = performance.now() 20 } 21 document.addEventListener("pointerdown", noteInput, { 22 capture: true, 23 passive: true, 24 }) 25 document.addEventListener("keydown", noteInput, { capture: true }) 26 27 const pendingRelease = [] 28 const releaseAll = () => { 29 for (const release of pendingRelease.splice(0)) release() 30 } 31 document.addEventListener( 32 "pointerdown", 33 () => requestAnimationFrame(releaseAll), 34 { capture: true, passive: true }, 35 ) 36 document.addEventListener( 37 "keydown", 38 () => requestAnimationFrame(releaseAll), 39 { capture: true }, 40 ) 41 42 const releaseOnInput = (release) => { 43 if (performance.now() - lastInput < 400) { 44 release() 45 } else { 46 pendingRelease.push(release) 47 } 48 } 49 50 // Same gate, published for the other code path that yanks a reserved 51 // box out of the layout: AssertiveYield's slotRenderEnded handler, 52 // which hides a slot the auction came back empty on. That collapse is 53 // worth as much CLS as the space the slot was holding, so it waits for 54 // an input too. Callers fall back to collapsing immediately if this is 55 // missing, which keeps packages/ads working without this script. 56 window.releaseAdSpaceOnInput = releaseOnInput 57 58 const collapse = () => { 59 const ay = window.ayManagerEnv 60 61 if (!ay?.settings?.placements || !ay.tools?.getEnabledPlacements) { 62 return 63 } 64 65 const enabled = ay.tools.getEnabledPlacements() 66 67 for (const entry of ay.settings.placements) { 68 // Only placements AY renders *inside* their target. For 69 // beforebegin/afterend the target is a sibling anchor â real 70 // content that must not be hidden. 71 if (!["afterbegin", "beforeend"].includes(entry.position)) { 72 continue 73 } 74 75 // Enabled: AY will request it and slotRenderEnded decides. 76 if (enabled.some(({ _id }) => _id === entry._id)) { 77 continue 78 } 79 80 for (const el of document.querySelectorAll(entry.placement)) { 81 // ...except when the wrapper _is_ the page 82 if (["body", "html"].includes(el.tagName.toLowerCase())) { 83 continue 84 } 85 86 if (el.hasAttribute("data-empty")) { 87 continue 88 } 89 90 el.style.visibility = "hidden" 91 releaseOnInput(() => { 92 el.style.display = "none" 93 el.setAttribute("data-empty", "") 94 95 // The AY selector can target a wrapper around the slot 96 // rather than the slot itself. 97 for (const slot of el.querySelectorAll( 98 "[data-ad-slot]", 99 )) { 100 slot.setAttribute("data-empty", "") 101 } 102 }) 103 } 104 } 105 } 106 107 // Exposed so infinite scroll can re-sweep slots inserted after load. 108 window.collapseDisabledAdSlots = () => 109 window.requestAnimationFrame(collapse) 110 111 window.ayManagerEnv = window.ayManagerEnv || { cmd: [] } 112 window.ayManagerEnv.cmd.push(() => window.collapseDisabledAdSlots()) 113 })() 114</script>
114
114<script src="https://v4EcqHoPC3remy2Dv.ay.delivery/manager/v4EcqHoPC3remy2Dv" type="text/javascript" referrerpolicy="no-referrer-when-downgrade" async> 115 </script>
115<script>(function(){const targeting = {"env":"prod","stage":"prod","url":"penandthepad.com/pen-and-the-pad/","hostname":"penandthepad.com","edge_country":"TW","cid":"pen-and-the-pad","path":"pen-and-the-pad","category":"pen-and-the-pad","topic":"pen-and-the-pad","news":"no"}; 116const debug = false; 117 118 window.googletag = window.googletag || { cmd: [] }; 119 120 // A wrapper can opt out of the global marking below with 121 // `data-ad-self-managed` when it owns its own fill lifecycle 122 // (e.g. a reserved band that must not collapse the instant GPT 123 // reports a render). Marking it here as well would fight that 124 // component and undo whatever it is holding. 125 const selfManaged = (wrapper) => 126 wrapper.hasAttribute('data-ad-self-managed'); 127 128 document.addEventListener('ay-ads-disabled', () => { 129 const allAdElements = Array.from( 130 document.querySelectorAll('[data-ad-slot]') 131 ).filter((element) => !selfManaged(element)); 132 133 allAdElements.forEach(element => { 134 element.setAttribute('data-empty', ''); 135 }); 136 137 if (debug) { 138 console.log('[AY] ay-ads-disabled event: Marked ads as empty', { 139 count: allAdElements.length, 140 elements: allAdElements.map(el => ({ 141 selector: `[data-ad-slot="${el.getAttribute('data-ad-slot')}"]`, 142 element: el 143 })) 144 }); 145 } 146 }); 147 148 googletag.cmd.push(() => { 149 // Initialize googletag for targeting API (AY uses GPT API for targeting) 150 Object.entries(targeting).forEach(([key, value]) => { 151 window.googletag.pubads().setTargeting(key, value); 152 }); 153 154 // Global slotRenderEnded listener: 155 // All ad wrappers (AdSlot, SkyboxAd, CurtainAd) use `data-ad-slot` attribute. 156 // AY/GPT fires slotRenderEnded with slotElementId pointing at an AY-generated inner div. 157 // We walk up to our wrapper and mark it loaded or empty, 158 // unless the wrapper is self-managed (see above). 159 window.googletag 160 .pubads() 161 .addEventListener("slotRenderEnded", (event) => { 162 const slotElementId = event.slot.getSlotElementId(); 163 const ayDiv = document.getElementById(slotElementId); 164 if (!ayDiv) return; 165 166 const wrapper = ayDiv.closest("[data-ad-slot]"); 167 if (!wrapper) return; 168 if (selfManaged(wrapper)) return; 169 170 if (event.isEmpty) { 171 // Pulling a reserved box out of the layout mid-page 172 // costs exactly as much CLS as the space it was 173 // holding, and slots that reserve their creative's 174 // real height (the article natives) hold a lot. 175 // Blank it now â visibility keeps the space â and 176 // drop the space on the next discrete input, where 177 // the shift lands in the CLS input-exclusion 178 // window. `data-empty` goes on with the space so 179 // nothing reads the slot as collapsed early. 180 const collapse = () => { 181 // A refresh may have filled the slot while this 182 // release sat in the queue waiting for input. 183 if (wrapper.hasAttribute("data-loaded")) return; 184 wrapper.style.visibility = ""; 185 wrapper.style.display = "none"; 186 wrapper.setAttribute("data-empty", ""); 187 }; 188 wrapper.style.visibility = "hidden"; 189 wrapper.removeAttribute("data-loaded"); 190 if (window.releaseAdSpaceOnInput) { 191 window.releaseAdSpaceOnInput(collapse); 192 } else { 193 collapse(); 194 } 195 } else { 196 // A refresh can fill a slot that came back empty 197 // last time, so undo the blanking above as well as 198 // the collapse â a queued release would otherwise 199 // hide a slot that now has an ad in it. 200 wrapper.style.visibility = ""; 201 wrapper.style.display = ""; 202 wrapper.setAttribute("data-loaded", ""); 203 wrapper.removeAttribute("data-empty"); 204 } 205 206 if (debug) { 207 console.log("[AY] slotRenderEnded", { 208 slotElementId, 209 adSlot: wrapper.getAttribute("data-ad-slot"), 210 isEmpty: event.isEmpty, 211 }); 212 } 213 }); 214 }); 215 })();</script>
215<style is:global=""> 216 @media (max-width: 767px) { 217 .cnx-pinned-wrapper { 218 margin-top: 10px; 219 } 220 } 221 222 @media (min-width: 768px) { 223 .cnx-float.cnx-float-position-bottom { 224 transform: translate(0, -100px) !important; 225 } 226 } 227 228 .cnx-main-container.cnx-in-desktop { 229 max-width: 640px; 230 max-height: 360px; 231 } 232 </style>
232<script> 233 (() => { 234 window.ngt = window.ngt || { cmd:[] }; 235 window.ngt.cmd.push(function(){ 236 window.googletag.cmd.push(() => { 237 window.googletag 238 .pubads() 239 .setTargeting( 240 "user_agent", 241 navigator?.userAgent ?? "Unknown User Agent", 242 ) 243 .setTargeting( 244 "ngt_company_size", 245 (window.ngt.me.company?.company_size_range ?? "").replaceAll( 246 ",", 247 "", 248 ), 249 ); 250 251 const tags = 252 window.ngt.me?.body?.me.tags?.map((tag) => 253 tag.toLowerCase().replaceAll("site.", ""), 254 ) ?? []; 255 256 [ 257 ["is_datacenter", ["is-datacenter"]], 258 ["is_suspected_bot", ["suspected-bad-bot", "bad-bot"]], 259 ["is_ta_user", ["ta-user-ip"]], 260 ["is_crawler", ["user-agent-blocked"]], 261 ["is_ad_blocked", ["ad-blocked-ip"]], 262 ] 263 .filter(([tag, flags]) => 264 flags.some((flag) => tags.includes(flag)), 265 ) 266 .reduce((acc, [tag, flags]) => [...acc, tag], []) 267 .forEach((tag) => 268 window.googletag.pubads().setTargeting(tag, "true"), 269 ); 270 }) 271 }) 272 })(); 273</script>
273<script async type="text/javascript" src="https://cmp.inmobi.com/choice/vPn77x7pBG57Y/penandthepad.com/choice.js?tag_version=V3"></script>
273<script>(function(){const url = "https://cmp.inmobi.com/choice/vPn77x7pBG57Y/penandthepad.com/choice.js?tag_version=V3"; 274const iabVendorsUrl = "https://cmp.inmobi.com/GVL-v3/vendor-list.json"; 275const googleAtpUrl = "https://cmp.inmobi.com/tcfv2/google-atp-list.json"; 276 277(function() { 278 var uspTries = 0; 279 var uspTriesLimit = 3; 280 281 function makeStub() { 282 var TCF_LOCATOR_NAME = '__tcfapiLocator'; 283 var queue = []; 284 var win = window; 285 var cmpFrame; 286 287 function addFrame() { 288 var doc = win.document; 289 var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]); 290 291 if (!otherCMP) { 292 if (doc.body) { 293 var iframe = doc.createElement('iframe'); 294 295 iframe.style.cssText = 'display:none'; 296 iframe.name = TCF_LOCATOR_NAME; 297 doc.body.appendChild(iframe); 298 } else { 299 setTimeout(addFrame, 5); 300 } 301 } 302 return !otherCMP; 303 } 304 305 function tcfAPIHandler() { 306 var gdprApplies; 307 var args = arguments; 308 309 if (!args.length) { 310 return queue; 311 } else if (args[0] === 'setGdprApplies') { 312 if ( 313 args.length > 3 && 314 args[2] === 2 && 315 typeof args[3] === 'boolean' 316 ) { 317 gdprApplies = args[3]; 318 if (typeof args[2] === 'function') { 319 args[2]('set', true); 320 } 321 } 322 } else if (args[0] === 'ping') { 323 var retr = { 324 gdprApplies: gdprApplies, 325 cmpLoaded: false, 326 cmpStatus: 'stub' 327 }; 328 329 if (typeof args[2] === 'function') { 330 args[2](retr); 331 } 332 } else { 333 if(args[0] === 'init' && typeof args[3] === 'object') { 334 args[3] = Object.assign(args[3], { tag_version: 'V3' }); 335 } 336 queue.push(args); 337 } 338 } 339 340 function postMessageEventHandler(event) { 341 var msgIsString = typeof event.data === 'string'; 342 var json = {}; 343 344 try { 345 if (msgIsString) { 346 json = JSON.parse(event.data); 347 } else { 348 json = event.data; 349 } 350 } catch (ignore) {} 351 352 var payload = json.__tcfapiCall; 353 354 if (payload) { 355 window.__tcfapi( 356 payload.command, 357 payload.version, 358 function(retValue, success) { 359 var returnMsg = { 360 __tcfapiReturn: { 361 returnValue: retValue, 362 success: success, 363 callId: payload.callId 364 } 365 }; 366 if (msgIsString) { 367 returnMsg = JSON.stringify(returnMsg); 368 } 369 if (event && event.source && event.source.postMessage) { 370 event.source.postMessage(returnMsg, '*'); 371 } 372 }, 373 payload.parameter 374 ); 375 } 376 } 377 378 while (win) { 379 try { 380 if (win.frames[TCF_LOCATOR_NAME]) { 381 cmpFrame = win; 382 break; 383 } 384 } catch (ignore) {} 385 386 if (win === window.top) { 387 break; 388 } 389 win = win.parent; 390 } 391 if (!cmpFrame) { 392 addFrame(); 393 win.__tcfapi = tcfAPIHandler; 394 win.addEventListener('message', postMessageEventHandler, false); 395 } 396 }; 397 398 makeStub(); 399 400 function makeGppStub() { 401 const CMP_ID = 10; 402 const SUPPORTED_APIS = [ 403 '2:tcfeuv2', 404 '6:uspv1', 405 '7:usnatv1', 406 '8:usca', 407 '9:usvav1', 408 '10:uscov1', 409 '11:usutv1', 410 '12:usctv1' 411 ]; 412 413 window.__gpp_addFrame = function (n) { 414 if (!window.frames[n]) { 415 if (document.body) { 416 var i = document.createElement("iframe"); 417 i.style.cssText = "display:none"; 418 i.name = n; 419 document.body.appendChild(i); 420 } else { 421 window.setTimeout(window.__gpp_addFrame, 10, n); 422 } 423 } 424 }; 425 window.__gpp_stub = function () { 426 var b = arguments; 427 __gpp.queue = __gpp.queue || []; 428 __gpp.events = __gpp.events || []; 429 430 if (!b.length || (b.length == 1 && b[0] == "queue")) { 431 return __gpp.queue; 432 } 433 434 if (b.length == 1 && b[0] == "events") { 435 return __gpp.events; 436 } 437 438 var cmd = b[0]; 439 var clb = b.length > 1 ? b[1] : null; 440 var par = b.length > 2 ? b[2] : null; 441 if (cmd === "ping") { 442 clb( 443 { 444 gppVersion: "1.1", // must be âVersion.Subversionâ, current: â1.1â 445 cmpStatus: "stub", // possible values: stub, loading, loaded, error 446 cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled 447 signalStatus: "not ready", // possible values: not ready, ready 448 supportedAPIs: SUPPORTED_APIS, // list of supported APIs 449 cmpId: CMP_ID, // IAB assigned CMP ID, may be 0 during stub/loading 450 sectionList: [], 451 applicableSections: [-1], 452 gppString: "", 453 parsedSections: {}, 454 }, 455 true 456 ); 457 } else if (cmd === "addEventListener") { 458 if (!("lastId" in __gpp)) { 459 __gpp.lastId = 0; 460 } 461 __gpp.lastId++; 462 var lnr = __gpp.lastId; 463 __gpp.events.push({ 464 id: lnr, 465 callback: clb, 466 parameter: par, 467 }); 468 clb( 469 { 470 eventName: "listenerRegistered", 471 listenerId: lnr, // Registered ID of the listener 472 data: true, // positive signal 473 pingData: { 474 gppVersion: "1.1", // must be âVersion.Subversionâ, current: â1.1â 475 cmpStatus: "stub", // possible values: stub, loading, loaded, error 476 cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled 477 signalStatus: "not ready", // possible values: not ready, ready 478 supportedAPIs: SUPPORTED_APIS, // list of supported APIs 479 cmpId: CMP_ID, // list of supported APIs 480 sectionList: [], 481 applicableSections: [-1], 482 gppString: "", 483 parsedSections: {}, 484 }, 485 }, 486 true 487 ); 488 } else if (cmd === "removeEventListener") { 489 var success = false;
490 for (var i = 0; i < __gpp.events.length; i++) { 491 if (__gpp.events[i].id == par) { 492 __gpp.events.splice(i, 1); 493 success = true; 494 break; 495 } 496 } 497 clb( 498 { 499 eventName: "listenerRemoved", 500 listenerId: par, // Registered ID of the listener 501 data: success, // status info 502 pingData: { 503 gppVersion: "1.1", // must be âVersion.Subversionâ, current: â1.1â 504 cmpStatus: "stub", // possible values: stub, loading, loaded, error 505 cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled 506 signalStatus: "not ready", // possible values: not ready, ready 507 supportedAPIs: SUPPORTED_APIS, // list of supported APIs 508 cmpId: CMP_ID, // CMP ID 509 sectionList: [], 510 applicableSections: [-1], 511 gppString: "", 512 parsedSections: {}, 513 }, 514 }, 515 true 516 ); 517 } else if (cmd === "hasSection") { 518 clb(false, true); 519 } else if (cmd === "getSection" || cmd === "getField") { 520 clb(null, true); 521 } 522 //queue all other commands 523 else { 524 __gpp.queue.push([].slice.apply(b)); 525 } 526 }; 527 window.__gpp_msghandler = function (event) { 528 var msgIsString = typeof event.data === "string"; 529 try { 530 var json = msgIsString ? JSON.parse(event.data) : event.data; 531 } catch (e) { 532 var json = null; 533 } 534 if (typeof json === "object" && json !== null && "__gppCall" in json) { 535 var i = json.__gppCall; 536 window.__gpp( 537 i.command, 538 function (retValue, success) { 539 var returnMsg = { 540 __gppReturn: { 541 returnValue: retValue, 542 success: success, 543 callId: i.callId, 544 }, 545 }; 546 event.source.postMessage(msgIsString ? JSON.stringify(returnMsg) : returnMsg, "*"); 547 }, 548 "parameter" in i ? i.parameter : null, 549 "version" in i ? i.version : "1.1" 550 ); 551 } 552 }; 553 if (!("__gpp" in window) || typeof window.__gpp !== "function") { 554 window.__gpp = window.__gpp_stub; 555 window.addEventListener("message", window.__gpp_msghandler, false); 556 window.__gpp_addFrame("__gppLocator"); 557 } 558 }; 559 560 makeGppStub(); 561 562 var uspStubFunction = function() { 563 var arg = arguments; 564 if (typeof window.__uspapi !== uspStubFunction) { 565 setTimeout(function() { 566 if (typeof window.__uspapi !== 'undefined') { 567 window.__uspapi.apply(window.__uspapi, arg); 568 } 569 }, 500); 570 } 571 }; 572 573 var checkIfUspIsReady = function() { 574 uspTries++; 575 if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) { 576 console.warn('USP is not accessible'); 577 } else { 578 clearInterval(uspInterval); 579 } 580 }; 581 582 if (typeof window.__uspapi === 'undefined') { 583 window.__uspapi = uspStubFunction; 584 var uspInterval = setInterval(checkIfUspIsReady, 6000); 585 } 586 587 /** 588 * DataLayer Push & CCPA Support 589 * 590 * Version 2.0.7 591 */ 592 (async function () { 593 //URLs need to be externalized based on environments, during build update. 594 var get_iab_vendors_url = iabVendorsUrl; 595 var get_google_atp_url = googleAtpUrl; 596 var iab_vendors, iab_vendor_ids, iab_vendor_names; 597 var google_vendors, google_vendor_ids, google_vendor_names; 598 var google_vendors_arr = [], 599 google_vendor_ids_arr = [], 600 google_vendor_names_arr = []; 601 var iab_vendors_arr = [], 602 iab_vendor_ids_arr = [], 603 iab_vendor_names_arr = []; 604 var non_iab_vendors, non_iab_vendor_ids, non_iab_vendor_names; 605 var non_iab_vendors_arr = [], 606 non_iab_vendor_ids_arr = [], 607 non_iab_vendor_names_arr = []; 608 var publisher_consents, publisher_legitimate_interests; 609 var purpose_consents, purpose_legitimate_interests; 610 611 function resultToList(a) { 612 var b = ","; 613 if (a && typeof a === 'object') { 614 for (var i in a) { 615 if (a[i]) { 616 b += i + ","; 617 } 618 } 619 } 620 return b; 621 } 622 623 /** 624 * Get a full list of Non-IAB Vendors, specific to the Quantcast Universal Tag ID, using tcfapi 625 */ 626 function vendors_getNonIABVendorList() { 627 window.__tcfapi("getConfig", 2, function (retObj) { 628 if (retObj && retObj.hasOwnProperty("nonIabVendorsInfo")) { 629 if ( 630 retObj.nonIabVendorsInfo && retObj.nonIabVendorsInfo.hasOwnProperty( 631 "nonIabVendorList", 632 ) 633 ) { 634 non_iab_vendors = 635 retObj.nonIabVendorsInfo.nonIabVendorList;
636 // Dont assume array key = vendor id, set key as vendor id with iab_vendors[i].id 637 Object.keys(non_iab_vendors).forEach(function (i) { 638 non_iab_vendors_arr[non_iab_vendors[i].vendorId] = 639 non_iab_vendors[i].name; 640 }); 641 } 642 } 643 }); 644 } 645 646 /** 647 * Get a full list of IAB Vendors. 648 */ 649 function vendors_getIABVendorList() { 650 var xhttp = new XMLHttpRequest(); 651 xhttp.onreadystatechange = function () { 652 if (this.readyState == 4 && this.status == 200) { 653 var res = JSON.parse(this.responseText); 654 if (res && res.hasOwnProperty("vendors")) { 655 iab_vendors = res.vendors; 656 657 // Dont assume array key = vendor id, set key as vendor id with iab_vendors[i].id 658 Object.keys(iab_vendors).forEach(function (i) { 659 iab_vendors_arr[iab_vendors[i].id] = 660 iab_vendors[i].name; 661 }); 662 } 663 } 664 }; 665 xhttp.open("GET", get_iab_vendors_url, true); 666 xhttp.send(); 667 } 668 669 /** 670 * Get a full list of google atp list 671 */ 672 function vendors_getGoogleVendorList() { 673 var xhttp = new XMLHttpRequest(); 674 xhttp.onreadystatechange = function () { 675 if (this.readyState == 4 && this.status == 200) { 676 google_vendors = JSON.parse(this.responseText); 677 google_vendors.forEach(function (vendor) { 678 google_vendors_arr[vendor.provider_id] = 679 vendor.provider_name; 680 }); 681 } 682 }; 683 xhttp.open("GET", get_google_atp_url, true); 684 xhttp.send(); 685 } 686 687 /** 688 * CMP Loaded. 689 * 690 * Push __cmpLoaded event to the data layer. 691 */ 692 function dlSend_tcLoaded(tcData) { 693 window.dataLayer = window.dataLayer || []; 694 window.dataLayer.push({ 695 event: "__cmpLoaded", 696 __cmpLoaded: true, 697 gdpr: tcData ? tcData.gdprApplies : false, 698 }); 699 } 700 701 /** 702 * IAB Vendors. 703 * 704 * Push __cmpIABConsents event to the datalayer, along with iab vendor consent ids. 705 */ 706 function dlSend_consentData(tcData) { 707 window.dataLayer = window.dataLayer || []; 708 iab_vendor_names_arr = []; 709 iab_vendor_ids_arr = []; 710 non_iab_vendor_names_arr = []; 711 non_iab_vendor_ids_arr = []; 712 google_vendor_names_arr = []; 713 google_vendor_ids_arr = []; 714 715 if (tcData && tcData.hasOwnProperty("publisher")) { 716 if (tcData.publisher && tcData.publisher.hasOwnProperty("consents")) { 717 publisher_consents = resultToList( 718 tcData.publisher ? tcData.publisher.consents : null, 719 ); 720 } 721 publisher_legitimate_interests = resultToList( 722 tcData.publisher ? tcData.publisher.legitimateInterests : null, 723 ); 724 } 725 726 if (tcData && tcData.hasOwnProperty("purpose")) { 727 if (tcData.purpose && tcData.purpose.hasOwnProperty("consents")) { 728 purpose_consents = resultToList(tcData.purpose ? tcData.purpose.consents : null); 729 } 730 purpose_legitimate_interests = resultToList( 731 tcData.purpose ? tcData.purpose.legitimateInterests : null, 732 ); 733 } 734 735 // Run this in an interval (every 0.1s) just in case we are still waiting 736 // on the return with our iab_vendors list calls, bail after 10 seconds 737 var cnt = 0; 738 var interval = setInterval(function () { 739 cnt += 1; 740 741 if (cnt === 100) { 742 clearInterval(interval); 743 } 744 745 if (iab_vendors) { 746 clearInterval(interval); 747 748 if (tcData ? tcData.gdprApplies : false) { 749 // Create name & id arrays of iab vendors with consent. 750 if (tcData && tcData.hasOwnProperty("vendor") && tcData.vendor && tcData.vendor.consents) { 751 Object.keys(tcData.vendor.consents).forEach( 752 function (vendorId) { 753 if ( 754 (tcData.vendor && tcData.vendor.consents ? tcData.vendor.consents[vendorId] : false) || 755 !tcData.gdprApplies 756 ) { 757 iab_vendor_names_arr[vendorId] = 758 iab_vendors_arr[vendorId];
759 iab_vendor_ids_arr[vendorId] = vendorId; 760 } 761 }, 762 ); 763 } 764 } else { 765 // GDPR does not apply, add all vendor names/ids 766 iab_vendor_names_arr = iab_vendors_arr; 767 iab_vendors_arr.forEach( 768 function (vendorName, vendorId) { 769 iab_vendor_ids_arr[vendorId] = vendorId; 770 }, 771 ); 772 } 773 774 if (tcData && tcData.addtlConsent && google_vendors_arr) { 775 // Create name and id arrays of google vendors with consent. 776 // addtlConsent: "1~39.43.46.55.61. 777 // 1~ is the version and the rest are the decoded ids 778 var addtlConsentParts = (tcData.addtlConsent || "").split("1~"); 779 if (addtlConsentParts.length > 1) { 780 google_vendor_ids_arr = addtlConsentParts[1].split("."); 781 } 782 google_vendor_ids_arr && 783 google_vendor_ids_arr.forEach(function (google_id) { 784 google_vendor_names_arr.push( 785 google_vendors_arr[google_id], 786 ); 787 }); 788 } 789 790 // Non IAB Vendors 791 window.__tcfapi( 792 "getNonIABVendorConsents", 793 2, 794 function (nonIabConsent, nonIabSuccess) { 795 if (nonIabSuccess) { 796 if (nonIabConsent.gdprApplies) { 797 // Create name & id arrays of non iab vendors with consent. 798 nonIabConsent.nonIabVendorConsents && 799 Object.keys( 800 nonIabConsent.nonIabVendorConsents, 801 ).forEach(function (vendorId) { 802 if ( 803 nonIabConsent 804 .nonIabVendorConsents[ 805 vendorId 806 ] || 807 !nonIabConsent.gdprApplies 808 ) { 809 non_iab_vendor_names_arr[ 810 vendorId 811 ] = 812 non_iab_vendors_arr[ 813 vendorId 814 ]; 815 non_iab_vendor_ids_arr[ 816 vendorId 817 ] = vendorId; 818 } 819 }); 820 } else { 821 // GDPR does not apply, add all non iab vendor names/ids 822 non_iab_vendor_names_arr = 823 non_iab_vendors_arr; 824 non_iab_vendors_arr.forEach( 825 function (vendorName, vendorId) { 826 non_iab_vendor_ids_arr[vendorId] = 827 vendorId; 828 }, 829 ); 830 } 831 } 832 833 // Join our array values, skipping empty items and joing them with a delimiter 834 iab_vendor_names = iab_vendor_names_arr 835 .filter(Boolean) 836 .join("|"); 837 iab_vendor_ids = iab_vendor_ids_arr 838 .filter(Boolean) 839 .join(","); 840 google_vendor_names = google_vendor_names_arr 841 .filter(Boolean) 842 .join("|"); 843 google_vendor_ids = google_vendor_ids_arr 844 .filter(Boolean) 845 .join("|"); 846 non_iab_vendor_names = non_iab_vendor_names_arr 847 .filter(Boolean) 848 .join("|"); 849 non_iab_vendor_ids = non_iab_vendor_ids_arr 850 .filter(Boolean) 851 .join(","); 852 853 // Push __cmpIABConsents signals to the data layer. 854 window.dataLayer.push({ 855 event: "__cmpConsents", 856 __cmpConsents: { 857 iabVendorConsentIds: iab_vendor_ids, 858 iabVendorsWithConsent: iab_vendor_names, 859 nonIABVendorConsentIds: non_iab_vendor_ids, 860 nonIABVendorsWithConsent: 861 non_iab_vendor_names, 862 googleVendorConsentIds: google_vendor_ids, 863 googleVendorsWithConsent: 864 google_vendor_names,
865 gdpr: tcData ? tcData.gdprApplies : false, 866 publisherConsents: publisher_consents, 867 publisherLegitimateInterests: 868 publisher_legitimate_interests, 869 purposeConsents: purpose_consents, 870 purposeLegitimateInterests: 871 purpose_legitimate_interests, 872 }, 873 }); 874 }, 875 ); 876 } 877 }, 100); 878 } 879 880 /** 881 * CCPA footer message. 882 */ 883 function ccpa_footerMsg(tcData) { 884 window.__uspapi("uspPing", 1, function (obj, status) { 885 var footer_msg = document.getElementById("choice-footer-msg"); // get the footer container for our CCPA message 886 887 if (status && obj.mode.includes("USP") && footer_msg !== null) { 888 footer_msg.innerHTML = 889 footer_msg.innerHTML + 890 "We use cookies" + 891 " and other data collection technologies" + 892 " to provide the best experience for our customers. You may request" + 893 " that your data not be shared with third parties here: " + 894 '<a href="#" onclick="window.__uspapi(\'displayUspUi\');"' + 895 ">Do Not Sell My Data</a>" + 896 "."; 897 898 // Add the 'ccpa-msg-added' class to the container for post message add styling. 899 footer_msg.classList.add("ccpa-msg-added"); 900 901 window.__uspapi("setUspDftData", 1, function (obj, status) { 902 if (!status) { 903 console.log("Error: USP string not updated!"); 904 } 905 }); 906 } 907 }); 908 } 909 910 // Only get the IAB and Non-IAB vendor lists if the the Data layer push functionality 911 // is enabled, otherwise we do not need the vendor lists. 912 window.__tcfapi( 913 "addEventListener", 914 2, 915 function (getConfig, listenerSuccess) { 916 vendors_getIABVendorList(); // Get global IAB vendor list 917 vendors_getGoogleVendorList(); // Get google vendor list 918 vendors_getNonIABVendorList(); // Get UTID specific Non-IAB vendors 919 }, 920 ); 921 922 // CCPA 923 ccpa_footerMsg(); 924 925 // Add our main listener. 926 window.__tcfapi( 927 "addEventListener", 928 2, 929 function (tcData, listenerSuccess) { 930 if (listenerSuccess) { 931 /** 932 * User Visits: 933 * 1st visit/no cookie = 'cmpuishown' called and then 'useractioncomplete' after user make their selection 934 * Repeat visit/has cookie = only 'tcloaded' is called as the UI does not show unless the user clicks to show 935 */ 936 937 switch (tcData ? tcData.eventStatus : null) { 938 case "cmpuishown": 939 // Data Layer 940 dlSend_tcLoaded(tcData); 941 break; 942 943 case "tcloaded": 944 // Data Layer 945 if (tcData ? tcData.gdprApplies : false) { 946 dlSend_tcLoaded(tcData); 947 dlSend_consentData(tcData); 948 } 949 break; 950 951 case "useractioncomplete": 952 // Data Layer 953 dlSend_consentData(tcData); 954 break; 955 } 956 } 957 }, 958 ); 959 })(); 960})(); 961})();</script>
961 <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> 962 @layer properties, theme, base, components, utilities; 963</style><style>/* cyrillic-ext */ 964@font-face { 965 font-family: "IBM Plex Mono"; 966 font-style: italic; 967 font-weight: 100; 968 font-display: swap; 969 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdvp-8_FtFg95o.woff2) 970 format("woff2"); 971 unicode-range: 972 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 973} 974/* cyrillic */ 975@font-face { 976 font-family: "IBM Plex Mono"; 977 font-style: italic; 978 font-weight: 100; 979 font-display: swap; 980 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdmp-8_FtFg95o.woff2) 981 format("woff2"); 982 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 983} 984/* vietnamese */ 985@font-face { 986 font-family: "IBM Plex Mono"; 987 font-style: italic; 988 font-weight: 100; 989 font-display: swap; 990 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdtp-8_FtFg95o.woff2) 991 format("woff2"); 992 unicode-range: 993 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 994 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 995 U+1EA0-1EF9, U+20AB; 996} 997/* latin-ext */ 998@font-face { 999 font-family: "IBM Plex Mono"; 1000 font-style: italic; 1001 font-weight: 100; 1002 font-display: swap; 1003 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdsp-8_FtFg95o.woff2) 1004 format("woff2"); 1005 unicode-range: 1006 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1007 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1008 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1009} 1010/* latin */ 1011@font-face { 1012 font-family: "IBM Plex Mono"; 1013 font-style: italic; 1014 font-weight: 100; 1015 font-display: swap; 1016 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStkdip-8_FtFg.woff2) 1017 format("woff2"); 1018 unicode-range: 1019 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1020 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1021 U+2212, U+2215, U+FEFF, U+FFFD; 1022} 1023/* cyrillic-ext */ 1024@font-face { 1025 font-family: "IBM Plex Mono"; 1026 font-style: italic; 1027 font-weight: 200; 1028 font-display: swap; 1029 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1jcoQPttoz6Pz.woff2) 1030 format("woff2"); 1031 unicode-range: 1032 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1033} 1034/* cyrillic */ 1035@font-face { 1036 font-family: "IBM Plex Mono"; 1037 font-style: italic; 1038 font-weight: 200; 1039 font-display: swap; 1040 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1hMoQPttoz6Pz.woff2) 1041 format("woff2"); 1042 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1043} 1044/* vietnamese */ 1045@font-face { 1046 font-family: "IBM Plex Mono"; 1047 font-style: italic; 1048 font-weight: 200; 1049 font-display: swap; 1050 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1j8oQPttoz6Pz.woff2) 1051 format("woff2"); 1052 unicode-range: 1053 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1054 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1055 U+1EA0-1EF9, U+20AB; 1056} 1057/* latin-ext */ 1058@font-face { 1059 font-family: "IBM Plex Mono"; 1060 font-style: italic; 1061 font-weight: 200; 1062 font-display: swap; 1063 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1jsoQPttoz6Pz.woff2) 1064 format("woff2"); 1065 unicode-range: 1066 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
1067 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1068 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1069} 1070/* latin */ 1071@font-face { 1072 font-family: "IBM Plex Mono"; 1073 font-style: italic; 1074 font-weight: 200; 1075 font-display: swap; 1076 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZ1gMoQPttozw.woff2) 1077 format("woff2"); 1078 unicode-range: 1079 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1080 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1081 U+2212, U+2215, U+FEFF, U+FFFD; 1082} 1083/* cyrillic-ext */ 1084@font-face { 1085 font-family: "IBM Plex Mono"; 1086 font-style: italic; 1087 font-weight: 300; 1088 font-display: swap; 1089 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1jcoQPttoz6Pz.woff2) 1090 format("woff2"); 1091 unicode-range: 1092 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1093} 1094/* cyrillic */ 1095@font-face { 1096 font-family: "IBM Plex Mono"; 1097 font-style: italic; 1098 font-weight: 300; 1099 font-display: swap; 1100 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1hMoQPttoz6Pz.woff2) 1101 format("woff2"); 1102 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1103} 1104/* vietnamese */ 1105@font-face { 1106 font-family: "IBM Plex Mono"; 1107 font-style: italic; 1108 font-weight: 300; 1109 font-display: swap; 1110 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1j8oQPttoz6Pz.woff2) 1111 format("woff2"); 1112 unicode-range: 1113 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1114 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1115 U+1EA0-1EF9, U+20AB; 1116} 1117/* latin-ext */ 1118@font-face { 1119 font-family: "IBM Plex Mono"; 1120 font-style: italic; 1121 font-weight: 300; 1122 font-display: swap; 1123 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1jsoQPttoz6Pz.woff2) 1124 format("woff2"); 1125 unicode-range: 1126 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1127 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1128 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1129} 1130/* latin */ 1131@font-face { 1132 font-family: "IBM Plex Mono"; 1133 font-style: italic; 1134 font-weight: 300; 1135 font-display: swap; 1136 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1gMoQPttozw.woff2) 1137 format("woff2"); 1138 unicode-range: 1139 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1140 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1141 U+2212, U+2215, U+FEFF, U+FFFD; 1142} 1143/* cyrillic-ext */ 1144@font-face { 1145 font-family: "IBM Plex Mono"; 1146 font-style: italic; 1147 font-weight: 400; 1148 font-display: swap; 1149 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa2HdgregdFOFh.woff2) 1150 format("woff2"); 1151 unicode-range: 1152 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1153} 1154/* cyrillic */ 1155@font-face { 1156 font-family: "IBM Plex Mono"; 1157 font-style: italic; 1158 font-weight: 400; 1159 font-display: swap; 1160 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa0XdgregdFOFh.woff2) 1161 format("woff2"); 1162 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1163} 1164/* vietnamese */ 1165@font-face { 1166 font-family: "IBM Plex Mono"; 1167 font-style: italic; 1168 font-weight: 400; 1169 font-display: swap; 1170 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa2ndgregdFOFh.woff2) 1171 format("woff2"); 1172 unicode-range: 1173 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1174 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1175 U+1EA0-1EF9, U+20AB; 1176} 1177/* latin-ext */ 1178@font-face { 1179 font-family: "IBM Plex Mono"; 1180 font-style: italic; 1181 font-weight: 400; 1182 font-display: swap;
1183 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa23dgregdFOFh.woff2) 1184 format("woff2"); 1185 unicode-range: 1186 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1187 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1188 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1189} 1190/* latin */ 1191@font-face { 1192 font-family: "IBM Plex Mono"; 1193 font-style: italic; 1194 font-weight: 400; 1195 font-display: swap; 1196 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa1XdgregdFA.woff2) 1197 format("woff2"); 1198 unicode-range: 1199 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1200 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1201 U+2212, U+2215, U+FEFF, U+FFFD; 1202} 1203/* cyrillic-ext */ 1204@font-face { 1205 font-family: "IBM Plex Mono"; 1206 font-style: italic; 1207 font-weight: 500; 1208 font-display: swap; 1209 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1jcoQPttoz6Pz.woff2) 1210 format("woff2"); 1211 unicode-range: 1212 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1213} 1214/* cyrillic */ 1215@font-face { 1216 font-family: "IBM Plex Mono"; 1217 font-style: italic; 1218 font-weight: 500; 1219 font-display: swap; 1220 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1hMoQPttoz6Pz.woff2) 1221 format("woff2"); 1222 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1223} 1224/* vietnamese */ 1225@font-face { 1226 font-family: "IBM Plex Mono"; 1227 font-style: italic; 1228 font-weight: 500; 1229 font-display: swap; 1230 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1j8oQPttoz6Pz.woff2) 1231 format("woff2"); 1232 unicode-range: 1233 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1234 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1235 U+1EA0-1EF9, U+20AB; 1236} 1237/* latin-ext */ 1238@font-face { 1239 font-family: "IBM Plex Mono"; 1240 font-style: italic; 1241 font-weight: 500; 1242 font-display: swap; 1243 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1jsoQPttoz6Pz.woff2) 1244 format("woff2"); 1245 unicode-range: 1246 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1247 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1248 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1249} 1250/* latin */ 1251@font-face { 1252 font-family: "IBM Plex Mono"; 1253 font-style: italic; 1254 font-weight: 500; 1255 font-display: swap; 1256 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlR1gMoQPttozw.woff2) 1257 format("woff2"); 1258 unicode-range: 1259 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1260 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1261 U+2212, U+2215, U+FEFF, U+FFFD; 1262} 1263/* cyrillic-ext */ 1264@font-face { 1265 font-family: "IBM Plex Mono"; 1266 font-style: italic; 1267 font-weight: 600; 1268 font-display: swap; 1269 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1jcoQPttoz6Pz.woff2) 1270 format("woff2"); 1271 unicode-range: 1272 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1273} 1274/* cyrillic */ 1275@font-face { 1276 font-family: "IBM Plex Mono"; 1277 font-style: italic; 1278 font-weight: 600; 1279 font-display: swap; 1280 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1hMoQPttoz6Pz.woff2) 1281 format("woff2"); 1282 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1283} 1284/* vietnamese */ 1285@font-face { 1286 font-family: "IBM Plex Mono"; 1287 font-style: italic; 1288 font-weight: 600; 1289 font-display: swap; 1290 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1j8oQPttoz6Pz.woff2) 1291 format("woff2"); 1292 unicode-range: 1293 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1294 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1295 U+1EA0-1EF9, U+20AB; 1296} 1297/* latin-ext */ 1298@font-face { 1299 font-family: "IBM Plex Mono"; 1300 font-style: italic; 1301 font-weight: 600; 1302 font-display: swap;
1303 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1jsoQPttoz6Pz.woff2) 1304 format("woff2"); 1305 unicode-range: 1306 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1307 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1308 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1309} 1310/* latin */ 1311@font-face { 1312 font-family: "IBM Plex Mono"; 1313 font-style: italic; 1314 font-weight: 600; 1315 font-display: swap; 1316 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1gMoQPttozw.woff2) 1317 format("woff2"); 1318 unicode-range: 1319 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1320 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1321 U+2212, U+2215, U+FEFF, U+FFFD; 1322} 1323/* cyrillic-ext */ 1324@font-face { 1325 font-family: "IBM Plex Mono"; 1326 font-style: italic; 1327 font-weight: 700; 1328 font-display: swap; 1329 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1jcoQPttoz6Pz.woff2) 1330 format("woff2"); 1331 unicode-range: 1332 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1333} 1334/* cyrillic */ 1335@font-face { 1336 font-family: "IBM Plex Mono"; 1337 font-style: italic; 1338 font-weight: 700; 1339 font-display: swap; 1340 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1hMoQPttoz6Pz.woff2) 1341 format("woff2"); 1342 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1343} 1344/* vietnamese */ 1345@font-face { 1346 font-family: "IBM Plex Mono"; 1347 font-style: italic; 1348 font-weight: 700; 1349 font-display: swap; 1350 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1j8oQPttoz6Pz.woff2) 1351 format("woff2"); 1352 unicode-range: 1353 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1354 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1355 U+1EA0-1EF9, U+20AB; 1356} 1357/* latin-ext */ 1358@font-face { 1359 font-family: "IBM Plex Mono"; 1360 font-style: italic; 1361 font-weight: 700; 1362 font-display: swap; 1363 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1jsoQPttoz6Pz.woff2) 1364 format("woff2"); 1365 unicode-range: 1366 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1367 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1368 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1369} 1370/* latin */ 1371@font-face { 1372 font-family: "IBM Plex Mono"; 1373 font-style: italic; 1374 font-weight: 700; 1375 font-display: swap; 1376 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJ1gMoQPttozw.woff2) 1377 format("woff2"); 1378 unicode-range: 1379 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1380 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1381 U+2212, U+2215, U+FEFF, U+FFFD; 1382} 1383/* cyrillic-ext */ 1384@font-face { 1385 font-family: "IBM Plex Mono"; 1386 font-style: normal; 1387 font-weight: 100; 1388 font-display: swap; 1389 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa2HdgregdFOFh.woff2) 1390 format("woff2"); 1391 unicode-range: 1392 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1393} 1394/* cyrillic */ 1395@font-face { 1396 font-family: "IBM Plex Mono"; 1397 font-style: normal; 1398 font-weight: 100; 1399 font-display: swap; 1400 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa0XdgregdFOFh.woff2) 1401 format("woff2"); 1402 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1403} 1404/* vietnamese */ 1405@font-face { 1406 font-family: "IBM Plex Mono"; 1407 font-style: normal; 1408 font-weight: 100; 1409 font-display: swap; 1410 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa2ndgregdFOFh.woff2) 1411 format("woff2"); 1412 unicode-range: 1413 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1414 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1415 U+1EA0-1EF9, U+20AB; 1416} 1417/* latin-ext */ 1418@font-face { 1419 font-family: "IBM Plex Mono"; 1420 font-style: normal; 1421 font-weight: 100; 1422 font-display: swap;
1423 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa23dgregdFOFh.woff2) 1424 format("woff2"); 1425 unicode-range: 1426 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1427 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1428 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1429} 1430/* latin */ 1431@font-face { 1432 font-family: "IBM Plex Mono"; 1433 font-style: normal; 1434 font-weight: 100; 1435 font-display: swap; 1436 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwa1XdgregdFA.woff2) 1437 format("woff2"); 1438 unicode-range: 1439 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1440 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1441 U+2212, U+2215, U+FEFF, U+FFFD; 1442} 1443/* cyrillic-ext */ 1444@font-face { 1445 font-family: "IBM Plex Mono"; 1446 font-style: normal; 1447 font-weight: 200; 1448 font-display: swap; 1449 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwl1FgsAXHNlYzg.woff2) 1450 format("woff2"); 1451 unicode-range: 1452 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1453} 1454/* cyrillic */ 1455@font-face { 1456 font-family: "IBM Plex Mono"; 1457 font-style: normal; 1458 font-weight: 200; 1459 font-display: swap; 1460 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwlRFgsAXHNlYzg.woff2) 1461 format("woff2"); 1462 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1463} 1464/* vietnamese */ 1465@font-face { 1466 font-family: "IBM Plex Mono"; 1467 font-style: normal; 1468 font-weight: 200; 1469 font-display: swap; 1470 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwl9FgsAXHNlYzg.woff2) 1471 format("woff2"); 1472 unicode-range: 1473 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1474 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1475 U+1EA0-1EF9, U+20AB; 1476} 1477/* latin-ext */ 1478@font-face { 1479 font-family: "IBM Plex Mono"; 1480 font-style: normal; 1481 font-weight: 200; 1482 font-display: swap; 1483 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwl5FgsAXHNlYzg.woff2) 1484 format("woff2"); 1485 unicode-range: 1486 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1487 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1488 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1489} 1490/* latin */ 1491@font-face { 1492 font-family: "IBM Plex Mono"; 1493 font-style: normal; 1494 font-weight: 200; 1495 font-display: swap; 1496 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uALwlBFgsAXHNk.woff2) 1497 format("woff2"); 1498 unicode-range: 1499 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1500 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1501 U+2212, U+2215, U+FEFF, U+FFFD; 1502} 1503/* cyrillic-ext */ 1504@font-face { 1505 font-family: "IBM Plex Mono"; 1506 font-style: normal; 1507 font-weight: 300; 1508 font-display: swap; 1509 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwl1FgsAXHNlYzg.woff2) 1510 format("woff2"); 1511 unicode-range: 1512 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1513} 1514/* cyrillic */ 1515@font-face { 1516 font-family: "IBM Plex Mono"; 1517 font-style: normal; 1518 font-weight: 300; 1519 font-display: swap; 1520 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwlRFgsAXHNlYzg.woff2) 1521 format("woff2"); 1522 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1523} 1524/* vietnamese */ 1525@font-face { 1526 font-family: "IBM Plex Mono"; 1527 font-style: normal; 1528 font-weight: 300; 1529 font-display: swap; 1530 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwl9FgsAXHNlYzg.woff2) 1531 format("woff2"); 1532 unicode-range: 1533 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1534 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1535 U+1EA0-1EF9, U+20AB; 1536} 1537/* latin-ext */ 1538@font-face { 1539 font-family: "IBM Plex Mono"; 1540 font-style: normal; 1541 font-weight: 300; 1542 font-display: swap;
1543 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwl5FgsAXHNlYzg.woff2) 1544 format("woff2"); 1545 unicode-range: 1546 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1547 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1548 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1549} 1550/* latin */ 1551@font-face { 1552 font-family: "IBM Plex Mono"; 1553 font-style: normal; 1554 font-weight: 300; 1555 font-display: swap; 1556 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQIwlBFgsAXHNk.woff2) 1557 format("woff2"); 1558 unicode-range: 1559 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1560 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1561 U+2212, U+2215, U+FEFF, U+FFFD; 1562} 1563/* cyrillic-ext */ 1564@font-face { 1565 font-family: "IBM Plex Mono"; 1566 font-style: normal; 1567 font-weight: 400; 1568 font-display: swap; 1569 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1iIq131nj-otFQ.woff2) 1570 format("woff2"); 1571 unicode-range: 1572 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1573} 1574/* cyrillic */ 1575@font-face { 1576 font-family: "IBM Plex Mono"; 1577 font-style: normal; 1578 font-weight: 400; 1579 font-display: swap; 1580 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1isq131nj-otFQ.woff2) 1581 format("woff2"); 1582 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1583} 1584/* vietnamese */ 1585@font-face { 1586 font-family: "IBM Plex Mono"; 1587 font-style: normal; 1588 font-weight: 400; 1589 font-display: swap; 1590 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1iAq131nj-otFQ.woff2) 1591 format("woff2"); 1592 unicode-range: 1593 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1594 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1595 U+1EA0-1EF9, U+20AB; 1596} 1597/* latin-ext */ 1598@font-face { 1599 font-family: "IBM Plex Mono"; 1600 font-style: normal; 1601 font-weight: 400; 1602 font-display: swap; 1603 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1iEq131nj-otFQ.woff2) 1604 format("woff2"); 1605 unicode-range: 1606 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1607 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1608 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1609} 1610/* latin */ 1611@font-face { 1612 font-family: "IBM Plex Mono"; 1613 font-style: normal; 1614 font-weight: 400; 1615 font-display: swap; 1616 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1i8q131nj-o.woff2) 1617 format("woff2"); 1618 unicode-range: 1619 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1620 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1621 U+2212, U+2215, U+FEFF, U+FFFD; 1622} 1623/* cyrillic-ext */ 1624@font-face { 1625 font-family: "IBM Plex Mono"; 1626 font-style: normal; 1627 font-weight: 500; 1628 font-display: swap; 1629 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgsAXHNlYzg.woff2) 1630 format("woff2"); 1631 unicode-range: 1632 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1633} 1634/* cyrillic */ 1635@font-face { 1636 font-family: "IBM Plex Mono"; 1637 font-style: normal; 1638 font-weight: 500; 1639 font-display: swap; 1640 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwlRFgsAXHNlYzg.woff2) 1641 format("woff2"); 1642 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1643} 1644/* vietnamese */ 1645@font-face { 1646 font-family: "IBM Plex Mono"; 1647 font-style: normal; 1648 font-weight: 500; 1649 font-display: swap; 1650 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgsAXHNlYzg.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 Mono"; 1660 font-style: normal; 1661 font-weight: 500; 1662 font-display: swap;
1663 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgsAXHNlYzg.woff2) 1664 format("woff2"); 1665 unicode-range: 1666 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1667 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1668 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1669} 1670/* latin */ 1671@font-face { 1672 font-family: "IBM Plex Mono"; 1673 font-style: normal; 1674 font-weight: 500; 1675 font-display: swap; 1676 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgsAXHNk.woff2) 1677 format("woff2"); 1678 unicode-range: 1679 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1680 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1681 U+2212, U+2215, U+FEFF, U+FFFD; 1682} 1683/* cyrillic-ext */ 1684@font-face { 1685 font-family: "IBM Plex Mono"; 1686 font-style: normal; 1687 font-weight: 600; 1688 font-display: swap; 1689 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl1FgsAXHNlYzg.woff2) 1690 format("woff2"); 1691 unicode-range: 1692 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1693} 1694/* cyrillic */ 1695@font-face { 1696 font-family: "IBM Plex Mono"; 1697 font-style: normal; 1698 font-weight: 600; 1699 font-display: swap; 1700 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlRFgsAXHNlYzg.woff2) 1701 format("woff2"); 1702 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1703} 1704/* vietnamese */ 1705@font-face { 1706 font-family: "IBM Plex Mono"; 1707 font-style: normal; 1708 font-weight: 600; 1709 font-display: swap; 1710 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl9FgsAXHNlYzg.woff2) 1711 format("woff2"); 1712 unicode-range: 1713 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1714 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1715 U+1EA0-1EF9, U+20AB; 1716} 1717/* latin-ext */ 1718@font-face { 1719 font-family: "IBM Plex Mono"; 1720 font-style: normal; 1721 font-weight: 600; 1722 font-display: swap; 1723 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl5FgsAXHNlYzg.woff2) 1724 format("woff2"); 1725 unicode-range: 1726 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1727 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1728 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1729} 1730/* latin */ 1731@font-face { 1732 font-family: "IBM Plex Mono"; 1733 font-style: normal; 1734 font-weight: 600; 1735 font-display: swap; 1736 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFgsAXHNk.woff2) 1737 format("woff2"); 1738 unicode-range: 1739 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1740 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1741 U+2212, U+2215, U+FEFF, U+FFFD; 1742} 1743/* cyrillic-ext */ 1744@font-face { 1745 font-family: "IBM Plex Mono"; 1746 font-style: normal; 1747 font-weight: 700; 1748 font-display: swap; 1749 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwl1FgsAXHNlYzg.woff2) 1750 format("woff2"); 1751 unicode-range: 1752 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1753} 1754/* cyrillic */ 1755@font-face { 1756 font-family: "IBM Plex Mono"; 1757 font-style: normal; 1758 font-weight: 700; 1759 font-display: swap; 1760 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwlRFgsAXHNlYzg.woff2) 1761 format("woff2"); 1762 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1763} 1764/* vietnamese */ 1765@font-face { 1766 font-family: "IBM Plex Mono"; 1767 font-style: normal; 1768 font-weight: 700; 1769 font-display: swap; 1770 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwl9FgsAXHNlYzg.woff2) 1771 format("woff2"); 1772 unicode-range: 1773 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1774 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1775 U+1EA0-1EF9, U+20AB; 1776} 1777/* latin-ext */ 1778@font-face { 1779 font-family: "IBM Plex Mono"; 1780 font-style: normal; 1781 font-weight: 700; 1782 font-display: swap;
1783 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwl5FgsAXHNlYzg.woff2) 1784 format("woff2"); 1785 unicode-range: 1786 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1787 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1788 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1789} 1790/* latin */ 1791@font-face { 1792 font-family: "IBM Plex Mono"; 1793 font-style: normal; 1794 font-weight: 700; 1795 font-display: swap; 1796 src: url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQPwlBFgsAXHNk.woff2) 1797 format("woff2"); 1798 unicode-range: 1799 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1800 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1801 U+2212, U+2215, U+FEFF, U+FFFD; 1802} 1803/* cyrillic-ext */ 1804@font-face { 1805 font-family: "IBM Plex Sans"; 1806 font-style: italic; 1807 font-weight: 100 700; 1808 font-stretch: 100%; 1809 font-display: swap; 1810 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYnYAKRjdNS7Iw.woff2) 1811 format("woff2"); 1812 unicode-range: 1813 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1814} 1815/* cyrillic */ 1816@font-face { 1817 font-family: "IBM Plex Sans"; 1818 font-style: italic; 1819 font-weight: 100 700; 1820 font-stretch: 100%; 1821 font-display: swap; 1822 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYDYAKRjdNS7Iw.woff2) 1823 format("woff2"); 1824 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1825} 1826/* greek */ 1827@font-face { 1828 font-family: "IBM Plex Sans"; 1829 font-style: italic; 1830 font-weight: 100 700; 1831 font-stretch: 100%; 1832 font-display: swap; 1833 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYfYAKRjdNS7Iw.woff2) 1834 format("woff2"); 1835 unicode-range: 1836 U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; 1837} 1838/* vietnamese */ 1839@font-face { 1840 font-family: "IBM Plex Sans"; 1841 font-style: italic; 1842 font-weight: 100 700; 1843 font-stretch: 100%; 1844 font-display: swap; 1845 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYvYAKRjdNS7Iw.woff2) 1846 format("woff2"); 1847 unicode-range: 1848 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1849 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1850 U+1EA0-1EF9, U+20AB; 1851} 1852/* latin-ext */ 1853@font-face { 1854 font-family: "IBM Plex Sans"; 1855 font-style: italic; 1856 font-weight: 100 700; 1857 font-stretch: 100%; 1858 font-display: swap; 1859 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYrYAKRjdNS7Iw.woff2) 1860 format("woff2"); 1861 unicode-range: 1862 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1863 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1864 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1865} 1866/* latin */ 1867@font-face { 1868 font-family: "IBM Plex Sans"; 1869 font-style: italic; 1870 font-weight: 100 700; 1871 font-stretch: 100%; 1872 font-display: swap; 1873 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXxKVElMYYaJe8bpLHnCwDKhdTEG46kmUZQCX598fQbGYTYAKRjdNQ.woff2) 1874 format("woff2"); 1875 unicode-range: 1876 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1877 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1878 U+2212, U+2215, U+FEFF, U+FFFD; 1879} 1880/* cyrillic-ext */ 1881@font-face { 1882 font-family: "IBM Plex Sans"; 1883 font-style: normal; 1884 font-weight: 100 700; 1885 font-stretch: 100%; 1886 font-display: swap; 1887 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbSB4ZhRNU.woff2) 1888 format("woff2"); 1889 unicode-range: 1890 U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 1891} 1892/* cyrillic */ 1893@font-face { 1894 font-family: "IBM Plex Sans"; 1895 font-style: normal; 1896 font-weight: 100 700; 1897 font-stretch: 100%; 1898 font-display: swap;
1899 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbSB4ZhRNU.woff2) 1900 format("woff2"); 1901 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 1902} 1903/* greek */ 1904@font-face { 1905 font-family: "IBM Plex Sans"; 1906 font-style: normal; 1907 font-weight: 100 700; 1908 font-stretch: 100%; 1909 font-display: swap; 1910 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbSB4ZhRNU.woff2) 1911 format("woff2"); 1912 unicode-range: 1913 U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; 1914} 1915/* vietnamese */ 1916@font-face { 1917 font-family: "IBM Plex Sans"; 1918 font-style: normal; 1919 font-weight: 100 700; 1920 font-stretch: 100%; 1921 font-display: swap; 1922 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbSB4ZhRNU.woff2) 1923 format("woff2"); 1924 unicode-range: 1925 U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, 1926 U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, 1927 U+1EA0-1EF9, U+20AB; 1928} 1929/* latin-ext */ 1930@font-face { 1931 font-family: "IBM Plex Sans"; 1932 font-style: normal; 1933 font-weight: 100 700; 1934 font-stretch: 100%; 1935 font-display: swap; 1936 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbSB4ZhRNU.woff2) 1937 format("woff2"); 1938 unicode-range: 1939 U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, 1940 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, 1941 U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 1942} 1943/* latin */ 1944@font-face { 1945 font-family: "IBM Plex Sans"; 1946 font-style: normal; 1947 font-weight: 100 700; 1948 font-stretch: 100%; 1949 font-display: swap; 1950 src: url(https://fonts.gstatic.com/s/ibmplexsans/v22/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYbSB4Zh.woff2) 1951 format("woff2"); 1952 unicode-range: 1953 U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 1954 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, 1955 U+2212, U+2215, U+FEFF, U+FFFD; 1956} 1957</style><style>:root { 1958 --theme-primary: #e30000; 1959 --theme-secondary: #2e2e30; 1960 --theme-tertiary: #f3f3f3; 1961 --theme-primary-foreground: #ffffff; 1962 --theme-secondary-foreground: #ffffff; 1963 --theme-tertiary-foreground: #2e2e30; 1964 --theme-surface: #ffffff; 1965 --theme-surface-raised: #ffffff; 1966 --theme-surface-sunken: #fafafa; 1967 --theme-surface-inverse: #18181b; 1968 --theme-foreground: #000000; 1969 --theme-ink: #000000; 1970 --theme-ink-muted: #71717a; 1971 --theme-ink-subtle: #a1a1aa; 1972 --theme-ink-inverse: #ffffff; 1973 --theme-line: #e4e4e7; 1974 --theme-line-strong: #d4d4d8; 1975 --theme-font-sans: "IBM Plex Sans", sans-serif; 1976 --theme-font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; 1977 --theme-font-mono: "IBM Plex Mono", monospace; 1978 --theme-font-display: "IBM Plex Sans", sans-serif; 1979 --theme-text-xs: 0.75em; 1980 --theme-text-sm: 0.9em; 1981 --theme-text-base: 14px; 1982 --theme-text-lg: 1.5em; 1983 --theme-text-xl: 1.8em; 1984 --theme-text-2xl: 3em; 1985 --theme-radius: 0.25rem; 1986 --theme-radius-xs: 0.125rem; 1987 --theme-radius-sm: 0.25rem; 1988 --theme-radius-md: 0.375rem; 1989 --theme-radius-lg: 0.5rem; 1990 --theme-radius-xl: 0.75rem; 1991 --theme-radius-2xl: 1rem; 1992 --theme-radius-3xl: 1.5rem; 1993 --theme-heading-family: inherit; 1994 --theme-heading-weight: 600; 1995 --theme-heading-transform: uppercase; 1996 --theme-heading-tracking: inherit; 1997 --theme-heading-color: var(--color-secondary); 1998 --theme-h1-size: 36px; 1999 --theme-h1-leading: 40px; 2000 --theme-h2-size: 30px; 2001 --theme-h2-leading: 36px; 2002 --theme-h3-size: 26px; 2003 --theme-h3-leading: 32px; 2004 --theme-h4-size: 20px; 2005 --theme-h4-leading: 28px; 2006 --theme-h5-size: 18px; 2007 --theme-h5-leading: 24px; 2008 --theme-h6-size: 16px; 2009 --theme-h6-leading: 24px; 2010 --theme-nav-family: inherit; 2011 --theme-nav-color: var(--color-secondary); 2012 --theme-nav-size: 14px; 2013 --theme-nav-leading: 24px; 2014 --theme-nav-weight: 500; 2015 --theme-nav-tracking: 0.7px; 2016 --theme-nav-transform: uppercase; 2017 --theme-nav-padding: 0.5rem; 2018 --theme-nav-radius: 0; 2019 --theme-nav-hover-bg: var(--color-primary); 2020 --theme-nav-hover-fg: var(--color-primary-foreground); 2021 --theme-nav-active-color: var(--theme-nav-color); 2022 --theme-nav-active-weight: var(--theme-nav-weight); 2023 --theme-nav-active-border-width: 0px; 2024 --theme-nav-active-border-color: transparent; 2025 --theme-nav-panel-bg: #fff; 2026 --theme-nav-panel-border-top: 4px; 2027 --theme-nav-panel-border-top-color: var(--color-primary); 2028 --theme-nav-panel-border-bottom: 1px; 2029 --theme-nav-panel-border-bottom-color: var(--color-primary); 2030 --theme-nav-panel-column-line: transparent; 2031 --theme-nav-panel-radius: 0; 2032 --theme-nav-panel-shadow: none; 2033 --theme-nav-panel-min-height: 300px; 2034 --theme-nav-panel-label-family: inherit; 2035 --theme-nav-panel-label-size: 18px; 2036 --theme-nav-panel-label-leading: 40px; 2037 --theme-nav-panel-label-weight: 700; 2038 --theme-nav-panel-label-tracking: 1.25px; 2039 --theme-nav-panel-label-transform: uppercase; 2040 --theme-nav-panel-label-color: var(--color-secondary); 2041 --theme-nav-panel-link-size: 16px; 2042 --theme-nav-panel-link-leading: 24px; 2043 --theme-nav-panel-link-weight: 600; 2044 --theme-nav-panel-link-color: var(--color-secondary); 2045 --theme-nav-panel-link-padding: 0.5rem; 2046 --theme-nav-panel-link-radius: 0.25rem; 2047 --theme-nav-panel-link-hover-bg: color-mix(in oklab, var(--color-primary) 10%, transparent); 2048 --theme-nav-panel-link-hover-fg: var(--color-secondary); 2049 --theme-nav-more-color: #000; 2050 --theme-nav-more-padding: 0.5rem; 2051 --theme-nav-more-radius: 0.25rem; 2052 --theme-nav-more-hover-bg: var(--color-primary); 2053 --theme-nav-more-hover-fg: var(--color-primary-foreground); 2054 --theme-nav-card-bg: transparent; 2055 --theme-nav-card-border-width: 0; 2056 --theme-nav-card-border-color: transparent; 2057 --theme-nav-card-radius: 0; 2058 --theme-nav-card-padding: 0.5rem; 2059 --theme-nav-card-hover-bg: var(--color-zinc-100); 2060 --theme-nav-card-hover-border-color: transparent; 2061 --theme-nav-card-columns: 1fr; 2062 --theme-nav-card-columns-wide: repeat(2, minmax(0, 1fr)); 2063 --theme-nav-icon-size: auto; 2064 --theme-nav-icon-radius: 0; 2065 --theme-nav-icon-border: 0; 2066 --theme-nav-icon-border-color: transparent; 2067 --theme-nav-icon-bg: transparent; 2068 --theme-nav-icon-color: inherit; 2069 --theme-nav-icon-hover-bg: transparent; 2070 --theme-nav-icon-hover-color: var(--color-primary); 2071 --theme-nav-search-panel-bg: color-mix(in oklab, var(--color-primary) 10%, #fff); 2072 --theme-nav-search-panel-border: 0 0 1px 1px; 2073 --theme-nav-search-panel-border-color: var(--color-zinc-300); 2074 --theme-nav-search-panel-radius: 0; 2075 --theme-nav-search-panel-shadow: none; 2076 --theme-nav-search-input-bg: #fff; 2077 --theme-nav-search-input-border: 1px; 2078 --theme-nav-search-input-border-color: #e1e1e1; 2079 --theme-nav-search-input-radius: 9999px; 2080 --theme-nav-search-input-color: inherit; 2081 --theme-nav-search-input-placeholder: color-mix(in oklab, currentcolor 50%, transparent); 2082 --theme-nav-search-input-size: inherit; 2083 --theme-nav-search-input-padding: 0 1.5rem; 2084 --theme-nav-search-submit-bg: var(--color-primary); 2085 --theme-nav-search-submit-fg: var(--color-primary-foreground); 2086 --theme-nav-account-panel-bg: #fff; 2087 --theme-nav-account-panel-border: 1px; 2088 --theme-nav-account-panel-border-color: var(--color-gray-200); 2089 --theme-nav-account-panel-radius: 0.75rem; 2090 --theme-nav-account-panel-shadow: 0 4px 24px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.06); 2091 --theme-nav-account-item-color: #000e2a; 2092 --theme-nav-account-item-hover-bg: var(--color-gray-50); 2093 --theme-nav-account-item-hover-color: #086bdb; 2094 --theme-nav-account-divider: var(--color-gray-100); 2095 --theme-nav-account-avatar-bg: linear-gradient(to bottom right, #086bdb, #0a4a96); 2096 --theme-nav-account-avatar-color: #fff; 2097 --theme-nav-account-focus: #086bdb; 2098 --theme-nav-account-trigger-bg: transparent; 2099 --theme-nav-account-trigger-border: 1.5px; 2100 --theme-nav-account-trigger-border-color: var(--color-gray-300); 2101 --theme-nav-account-trigger-radius: 9999px; 2102 --theme-nav-account-name-color: #000e2a; 2103 --theme-nav-drawer-top: 79px; 2104 --theme-nav-drawer-bg: #fff; 2105 --theme-nav-drawer-color: inherit; 2106 --theme-nav-drawer-item-family: inherit; 2107 --theme-nav-drawer-item-size: 21px; 2108 --theme-nav-drawer-item-leading: 1.5;
2109 --theme-nav-drawer-item-weight: 700; 2110 --theme-nav-drawer-item-tracking: normal; 2111 --theme-nav-drawer-item-transform: none; 2112 --theme-nav-drawer-item-color: var(--color-secondary); 2113 --theme-nav-drawer-item-justify: flex-start; 2114 --theme-nav-drawer-item-bg: transparent; 2115 --theme-nav-drawer-item-active-bg: transparent; 2116 --theme-nav-drawer-item-radius: 0; 2117 --theme-nav-drawer-item-padding: 0.5rem 0; 2118 --theme-nav-drawer-item-border-width: 0; 2119 --theme-nav-drawer-item-border-color: transparent; 2120 --theme-nav-drawer-item-active-color: var(--color-primary); 2121 --theme-nav-drawer-toggle-size: 22px; 2122 --theme-nav-drawer-toggle-color: currentColor; 2123 --theme-nav-drawer-divider-width: 0; 2124 --theme-nav-drawer-divider: transparent; 2125 --theme-nav-drawer-link-size: 16px; 2126 --theme-nav-drawer-link-color: inherit; 2127 --theme-prose-family: var(--theme-font-sans); 2128 --theme-prose-size: 18px; 2129 --theme-prose-leading: 28px; 2130 --theme-prose-color: #565656; 2131 --theme-prose-heading-family: var(--theme-font-sans); 2132 --theme-prose-heading-color: var(--color-secondary); 2133 --theme-prose-heading-transform: none; 2134 --theme-prose-container-heading-family: var(--theme-font-mono); 2135 --theme-prose-container-heading-color: var(--color-primary); 2136 --theme-prose-container-heading-transform: uppercase; 2137 --theme-archive-family: var(--theme-font-mono); 2138 --theme-archive-color: var(--color-primary); 2139 --theme-archive-transform: uppercase; 2140 --theme-section-family: inherit; 2141 --theme-section-size: 20px; 2142 --theme-section-leading: 28px; 2143 --theme-section-weight: 700; 2144 --theme-section-tracking: 1.4px; 2145 --theme-section-transform: uppercase; 2146 --theme-section-color: var(--color-secondary); 2147 --theme-section-border: 2px; 2148 --theme-section-border-color: var(--color-secondary); 2149 --theme-container: min(100%, 1200px); 2150 --theme-border-width: 1px; 2151 --theme-shadow: 0 0 12px rgba(114, 114, 119, 0.4); 2152} 2153.color-scope { 2154 --theme-heading-color: var(--color-secondary); 2155 --theme-nav-color: var(--color-secondary); 2156 --theme-nav-hover-bg: var(--color-primary); 2157 --theme-nav-hover-fg: var(--color-primary-foreground); 2158 --theme-nav-panel-border-top-color: var(--color-primary); 2159 --theme-nav-panel-border-bottom-color: var(--color-primary); 2160 --theme-nav-panel-label-color: var(--color-secondary); 2161 --theme-nav-panel-link-color: var(--color-secondary); 2162 --theme-nav-panel-link-hover-bg: color-mix(in oklab, var(--color-primary) 10%, transparent); 2163 --theme-nav-panel-link-hover-fg: var(--color-secondary); 2164 --theme-nav-more-hover-bg: var(--color-primary); 2165 --theme-nav-more-hover-fg: var(--color-primary-foreground); 2166 --theme-nav-card-hover-bg: var(--color-zinc-100); 2167 --theme-nav-icon-hover-color: var(--color-primary); 2168 --theme-nav-search-panel-bg: color-mix(in oklab, var(--color-primary) 10%, #fff); 2169 --theme-nav-search-panel-border-color: var(--color-zinc-300); 2170 --theme-nav-search-submit-bg: var(--color-primary); 2171 --theme-nav-search-submit-fg: var(--color-primary-foreground); 2172 --theme-nav-account-panel-border-color: var(--color-gray-200); 2173 --theme-nav-account-item-hover-bg: var(--color-gray-50); 2174 --theme-nav-account-divider: var(--color-gray-100); 2175 --theme-nav-account-trigger-border-color: var(--color-gray-300); 2176 --theme-nav-drawer-item-color: var(--color-secondary); 2177 --theme-nav-drawer-item-active-color: var(--color-primary); 2178 --theme-prose-heading-color: var(--color-secondary); 2179 --theme-prose-container-heading-color: var(--color-primary); 2180 --theme-archive-color: var(--color-primary); 2181 --theme-section-color: var(--color-secondary); 2182 --theme-section-border-color: var(--color-secondary); 2183}</style>
2183<script>window.__authProviders={"facebook":false,"linkedin":false}</script>
2183
2183<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>
2183<script>(function(){const targeting = {"env":"prod","stage":"prod","url":"penandthepad.com/pen-and-the-pad/","hostname":"penandthepad.com","edge_country":"TW","cid":"pen-and-the-pad","path":"pen-and-the-pad","category":"pen-and-the-pad","topic":"pen-and-the-pad","news":"no"}; 2184 2185 window.dataLayer = window.dataLayer || [] 2186 window.dataLayer.push( 2187 Object.fromEntries( 2188 Object.entries(targeting).map(([k, v]) => [`ad_${k}`, v]), 2189 ), 2190 ) 2191})();</script>
2191<script> 2192 ;(() => { 2193 const campaign = new URLSearchParams(window.location.search).get( 2194 "adTargeting_campaign", 2195 ) 2196 if (!campaign) return 2197 2198 window.googletag = window.googletag || { cmd: [] } 2199 window.googletag.cmd.push(() => { 2200 window.googletag.setConfig({ targeting: { campaign } }) 2201 }) 2202 })() 2203</script>
2203<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3235755782694080" crossorigin="anonymous"></script>
2203<script>(function(){const sampleRate = 1; 2204const debug = false; 2205const targeting = {"env":"prod","stage":"prod","url":"penandthepad.com/pen-and-the-pad/","hostname":"penandthepad.com","edge_country":"TW","cid":"pen-and-the-pad","path":"pen-and-the-pad","category":"pen-and-the-pad","topic":"pen-and-the-pad","news":"no"}; 2206 2207 (() => { 2208 // Same-origin, site-aware base (mirrors getSiteAwarePath): dev/preview 2209 // serve sites under /sites/{domain}/â¦; prod serves each on its own host. 2210 let base = "/api/ado"; 2211 if (location.pathname.startsWith("/sites/")) { 2212 const p = location.pathname.split("/"); 2213 if (p.length >= 3) base = "/sites/" + p[2] + base; 2214 } 2215 2216 const uuid = () => 2217 (crypto.randomUUID && crypto.randomUUID()) || 2218 String(Date.now()) + Math.random().toString(16).slice(2); 2219 2220 const pageviewId = uuid(); 2221 let sessionId; 2222 try { 2223 sessionId = sessionStorage.getItem("ado_sid"); 2224 if (!sessionId) { 2225 sessionId = uuid(); 2226 sessionStorage.setItem("ado_sid", sessionId); 2227 } 2228 } catch (_) { 2229 sessionId = ""; 2230 } 2231 2232 // --- Unified transport: buffer typed events, flush one batch. --- 2233 // Trailing debounce: each event (re)arms a short idle timer, so a 2234 // burst of N events coalesces into ONE sendBeacon fired shortly after 2235 // the burst ends (e.g. 10 events over 5s â 1 request). A max-age cap 2236 // guarantees a continuous stream still flushes at least every 2237 // FLUSH_MAX_MS, a size cap guards the sendBeacon payload limit, and 2238 // the buffer is always flushed on tab-hide/unload so nothing is lost. 2239 const FLUSH_IDLE_MS = 1000; // flush this long after the last event 2240 const FLUSH_MAX_MS = 5000; // never hold a buffered event longer 2241 const MAX_BATCH = 20; 2242 let buffer = []; 2243 let timer = null; 2244 let firstAt = 0; 2245 const flush = () => { 2246 if (timer) { 2247 clearTimeout(timer); 2248 timer = null; 2249 } 2250 firstAt = 0; 2251 if (!buffer.length) return; 2252 const events = buffer; 2253 buffer = []; 2254 try { 2255 const body = new Blob([JSON.stringify({ events })], { 2256 type: "text/plain", 2257 }); 2258 navigator.sendBeacon(base + "/collect/", body); 2259 if (debug) console.log("[ado] flush", events); 2260 } catch (e) { 2261 if (debug) console.warn("[ado] flush failed", e); 2262 } 2263 }; 2264 const push = (event) => { 2265 buffer.push(event); 2266 if (buffer.length >= MAX_BATCH) { 2267 flush(); 2268 return; 2269 } 2270 const now = Date.now(); 2271 if (!firstAt) firstAt = now; 2272 // Idle debounce, clamped so total hold never exceeds FLUSH_MAX_MS. 2273 const delay = Math.max( 2274 0, 2275 Math.min(FLUSH_IDLE_MS, FLUSH_MAX_MS - (now - firstAt)), 2276 ); 2277 if (timer) clearTimeout(timer); 2278 timer = setTimeout(flush, delay); 2279 }; 2280 2281 window._ado = { 2282 pageview_id: pageviewId, 2283 session_id: sessionId, 2284 push, 2285 flush, 2286 }; 2287 2288 addEventListener("visibilitychange", () => { 2289 if (document.visibilityState === "hidden") flush(); 2290 }); 2291 addEventListener("pagehide", flush); 2292 2293 const canonical = 2294 document.querySelector('link[rel="canonical"]')?.href || 2295 location.href; 2296 2297 // --- Framing detection ------------------------------------------- 2298 // Who, if anyone, has this page in an iframe â used to spot third 2299 // parties embedding our content. 2300 // 2301 // `location.ancestorOrigins` is the browser's own list of ancestor 2302 // frame origins (parent first, outermost last; Chromium + Safari). 2303 // Unlike `document.referrer` it can't be blanked by the framer's 2304 // Referrer-Policy and it does NOT drift to our own previous URL when 2305 // the framed page navigates inside the frame. The referrer is only 2306 // used to add path detail on top of an origin the ancestor list has 2307 // already confirmed, or as the sole signal on Firefox, which has no 2308 // ancestorOrigins. Sandboxed/opaque ancestors report "null". 2309 let iframeReferrer = ""; 2310 try { 2311 if (window.top !== window.self) { 2312 const ancestors = location.ancestorOrigins; 2313 const outermost = 2314 ancestors && ancestors.length 2315 ? ancestors[ancestors.length - 1] 2316 : ""; 2317 const referrerOrigin = document.referrer 2318 ? new URL(document.referrer).origin 2319 : "";
2320 if (outermost && outermost !== "null") { 2321 iframeReferrer = 2322 referrerOrigin === outermost 2323 ? document.referrer 2324 : outermost; 2325 } else if ( 2326 referrerOrigin && 2327 referrerOrigin !== location.origin 2328 ) { 2329 // A same-origin referrer inside a frame is our own 2330 // previous page, not an embedder â never report it. 2331 iframeReferrer = document.referrer; 2332 } 2333 // Our own frames (self-embeds, previews) aren't embedding. 2334 if (iframeReferrer.indexOf(location.origin) === 0) { 2335 iframeReferrer = ""; 2336 } 2337 } 2338 } catch (_) { 2339 iframeReferrer = ""; 2340 } 2341 2342 // Same edge country the astro-proxy injected into the GPT 2343 // `edge_country` targeting â keeps the event stream aligned with GAM. 2344 let adoCountry = String(targeting.edge_country || ""); 2345 if (adoCountry.indexOf("{{") === 0) adoCountry = ""; 2346 2347 const ctx = { 2348 site: (window._vars && window._vars.domain) || location.hostname, 2349 hostname: location.hostname, 2350 path: location.pathname, 2351 canonical_url: canonical, 2352 post_id: String(targeting.post_id || ""), 2353 category: String(targeting.category || ""), 2354 country: adoCountry, 2355 }; 2356 2357 // Pageview (always sent). 2358 push({ 2359 type: "pageview", 2360 client_event_ts: Date.now(), 2361 pageview_id: pageviewId, 2362 session_id: sessionId, 2363 page_type: String(targeting.ptype || ""), 2364 referrer: document.referrer || "", 2365 iframe_referrer: iframeReferrer, 2366 ...ctx, 2367 }); 2368 2369 // Per-slot refresh counter. 2370 const refreshCount = Object.create(null); 2371 2372 const adEvent = (eventType, event) => { 2373 if (sampleRate < 1 && Math.random() >= sampleRate) return; 2374 const slot = event.slot; 2375 const elId = slot.getSlotElementId(); 2376 const size = Array.isArray(event.size) 2377 ? event.size.join("x") 2378 : event.size != null 2379 ? String(event.size) 2380 : ""; 2381 const resp = slot.getResponseInformation 2382 ? slot.getResponseInformation() 2383 : null; 2384 const idx = 2385 eventType === "slot_render_ended" 2386 ? (refreshCount[elId] = (refreshCount[elId] || 0) + 1) - 1 2387 : refreshCount[elId] 2388 ? refreshCount[elId] - 1 2389 : 0; 2390 2391 push({ 2392 type: "ad_event", 2393 event_type: eventType, 2394 client_event_ts: Date.now(), 2395 pageview_id: pageviewId, 2396 session_id: sessionId, 2397 ad_unit_path: slot.getAdUnitPath(), 2398 slot_element_id: elId, 2399 slot_size: size, 2400 is_empty: !!event.isEmpty, 2401 refresh_index: idx, 2402 line_item_id: resp ? String(resp.lineItemId ?? "") : "", 2403 creative_id: resp ? String(resp.creativeId ?? "") : "", 2404 advertiser_id: resp ? String(resp.advertiserId ?? "") : "", 2405 campaign_id: resp ? String(resp.campaignId ?? "") : "", 2406 ...ctx, 2407 }); 2408 }; 2409 2410 window.googletag = window.googletag || { cmd: [] }; 2411 window.googletag.cmd.push(() => { 2412 window.googletag 2413 .pubads()
2414 .addEventListener("slotRenderEnded", (e) => 2415 adEvent("slot_render_ended", e), 2416 ); 2417 window.googletag 2418 .pubads() 2419 .addEventListener("impressionViewable", (e) => 2420 adEvent("impression_viewable", e), 2421 ); 2422 }); 2423 })(); 2424 })();</script>
2424
2424<script>(function(){const heartbeatMs = 5000; 2425const idleMs = 30000; 2426const snapshotMs = 20000; 2427const targeting = {"env":"prod","stage":"prod","url":"penandthepad.com/pen-and-the-pad/","hostname":"penandthepad.com","edge_country":"TW","cid":"pen-and-the-pad","path":"pen-and-the-pad","category":"pen-and-the-pad","topic":"pen-and-the-pad","news":"no"}; 2428const debug = false; 2429 2430 (() => { 2431 // Don't instrument headless/automation traffic. 2432 if (navigator.webdriver) return; 2433 // Requires the beacon's transport (same observability gate). 2434 const ado = window._ado; 2435 if (!ado || typeof ado.push !== "function") return; 2436 2437 const pageviewId = ado.pageview_id; 2438 const sessionId = ado.session_id; 2439 const uuid = () => 2440 (crypto.randomUUID && crypto.randomUUID()) || 2441 String(Date.now()) + Math.random().toString(16).slice(2); 2442 const str = (v) => (v == null ? "" : String(v)); 2443 2444 // --- Page context (stable for the pageview; per-segment path/post_id 2445 // are tracked separately since they swap on infinite-scroll). --- 2446 const canonical = 2447 document.querySelector('link[rel="canonical"]')?.href || 2448 location.href; 2449 let country = str(targeting.edge_country); 2450 if (country.indexOf("{{") === 0) country = ""; 2451 const ctx = { 2452 site: (window._vars && window._vars.domain) || location.hostname, 2453 hostname: location.hostname, 2454 canonical_url: canonical, 2455 category: str(targeting.category), 2456 country, 2457 }; 2458 const referrer = document.referrer || ""; 2459 2460 // --- Loyalty: durable, consent-gated visitor id. Respect Global 2461 // Privacy Control; fall back to session-only when storage is blocked. 2462 // (Wire to the site CMP here for finer-grained consent.) --- 2463 let visitorId = ""; 2464 let isNewVisitor = 0; 2465 try { 2466 if (navigator.globalPrivacyControl !== true) { 2467 visitorId = localStorage.getItem("ado_vid") || ""; 2468 if (!visitorId) { 2469 visitorId = uuid(); 2470 localStorage.setItem("ado_vid", visitorId); 2471 isNewVisitor = 1; 2472 } 2473 } 2474 } catch (_) { 2475 visitorId = ""; 2476 } 2477 2478 // --- Per-post segments. segment_id = `${pageview_id}:${post_id}`, so 2479 // scrolling back into an earlier article RESUMES its segment. --- 2480 const segments = new Map(); 2481 let activeSeg = null; 2482 let activeSince = null; // ms timestamp while accruing, else null 2483 let lastActivity = Date.now(); 2484 let sinceSnapshot = 0; 2485 2486 const accruing = () => 2487 document.visibilityState === "visible" && 2488 Date.now() - lastActivity < idleMs; 2489 2490 function flushAccrual() { 2491 if (activeSince !== null && activeSeg) { 2492 const now = Date.now(); 2493 activeSeg.engagedSeconds += (now - activeSince) / 1000; 2494 activeSince = now; 2495 } 2496 } 2497 function setAccruing(on) { 2498 flushAccrual(); 2499 activeSince = on ? Date.now() : null; 2500 } 2501 2502 function segFor(pid, category, path) { 2503 let seg = segments.get(pid); 2504 if (!seg) { 2505 seg = { 2506 post_id: pid, 2507 segment_id: pageviewId + ":" + pid, 2508 category: str(category) || ctx.category, 2509 path: str(path) || location.pathname, 2510 engagedSeconds: 0, 2511 maxScrollPct: 0, 2512 reachedEnd: 0, 2513 seq: 0, 2514 }; 2515 segments.set(pid, seg); 2516 } else { 2517 if (category != null && str(category)) seg.category = str(category); 2518 if (path != null && str(path)) seg.path = str(path); 2519 } 2520 return seg; 2521 } 2522 2523 // Deepest scroll into the active article + end detection, reusing the 2524 // h1[infiniscroll-id] / [data-type='infiniscroll-break'] geometry. 2525 function measureActive() { 2526 if (!activeSeg) return; 2527 const headers = Array.prototype.slice.call( 2528 document.querySelectorAll("h1[infiniscroll-id]"), 2529 ); 2530 const header = 2531 document.querySelector( 2532 'h1[infiniscroll-id="' + activeSeg.post_id + '"]', 2533 ) || headers[0]; 2534 if (!header) return; 2535 const y = window.scrollY; 2536 const toY = (el) =>
2536 el.getBoundingClientRect().top + y; 2537 const idx = headers.indexOf(header); 2538 const breaks = document.querySelectorAll( 2539 "[data-type='infiniscroll-break']", 2540 ); 2541 const bottomEl = breaks[idx] || headers[idx + 1]; 2542 const top = toY(header); 2543 const bottom = bottomEl 2544 ? toY(bottomEl) 2545 : document.documentElement.scrollHeight; 2546 let pct; 2547 if (bottom - top <= window.innerHeight) { 2548 // Article fits the viewport â readable without scrolling. 2549 pct = 100; 2550 } else { 2551 pct = Math.round( 2552 Math.min(Math.max((y - top) / (bottom - top), 0), 1) * 100, 2553 ); 2554 } 2555 if (pct > activeSeg.maxScrollPct) activeSeg.maxScrollPct = pct; 2556 // End reached when the article's bottom boundary enters the viewport. 2557 if (bottom <= y + window.innerHeight + 4) activeSeg.reachedEnd = 1; 2558 } 2559 2560 function snapshot(seg) { 2561 if (!seg) return; 2562 seg.seq += 1; 2563 ado.push({ 2564 type: "engagement", 2565 client_event_ts: Date.now(), 2566 pageview_id: pageviewId, 2567 session_id: sessionId, 2568 segment_id: seg.segment_id, 2569 post_id: seg.post_id, 2570 site: ctx.site, 2571 hostname: ctx.hostname, 2572 path: seg.path, 2573 canonical_url: ctx.canonical_url, 2574 category: seg.category, 2575 country: ctx.country, 2576 referrer: referrer, 2577 visitor_id: visitorId, 2578 is_new_visitor: isNewVisitor, 2579 engaged_seconds: Math.round(seg.engagedSeconds), 2580 max_scroll_pct: seg.maxScrollPct, 2581 reached_end: seg.reachedEnd, 2582 seq: seg.seq, 2583 }); 2584 if (debug) console.log("[ado] engagement", seg.segment_id, seg); 2585 } 2586 2587 function switchTo(pid, category, path) { 2588 if (!pid) return; 2589 if (activeSeg && activeSeg.post_id === pid) { 2590 segFor(pid, category, path); // refresh path/category 2591 return; 2592 }
2593 setAccruing(false); // bank time to the leaving segment 2594 if (activeSeg) snapshot(activeSeg); // flush leaving segment state 2595 activeSeg = segFor(pid, category, path); 2596 lastActivity = Date.now(); // a transition counts as activity 2597 setAccruing(accruing()); 2598 measureActive(); 2599 } 2600 2601 // Authoritative active-article signal from InfiniScroll transitions. 2602 document.addEventListener("ado:article", (e) => { 2603 const d = (e && e.detail) || {}; 2604 switchTo(str(d.post_id), d.category, d.path); 2605 }); 2606 2607 // Activity + scroll. 2608 const bump = () => { 2609 const wasAccruing = activeSince !== null; 2610 lastActivity = Date.now(); 2611 if (!wasAccruing && document.visibilityState === "visible") { 2612 setAccruing(true); 2613 } 2614 }; 2615 let scrollThrottled = false; 2616 const onScroll = () => { 2617 bump(); 2618 if (scrollThrottled) return; 2619 scrollThrottled = true; 2620 setTimeout(() => { 2621 scrollThrottled = false; 2622 measureActive(); 2623 }, 200); 2624 }; 2625 addEventListener("scroll", onScroll, { passive: true }); 2626 ["pointermove", "keydown", "touchstart", "click"].forEach((ev) => 2627 addEventListener(ev, bump, { passive: true }), 2628 ); 2629 2630 // Visibility + bfcache lifecycle. Beacon also flushes on hide; we push 2631 // the final engagement snapshot then force a flush s
2631o it isn't stranded. 2632 function finalizeAndFlush() { 2633 setAccruing(false); 2634 if (activeSeg) snapshot(activeSeg); 2635 if (typeof ado.flush === "function") ado.flush(); 2636 } 2637 addEventListener("visibilitychange", () => { 2638 if (document.visibilityState === "hidden") { 2639 finalizeAndFlush(); 2640 } else { 2641 lastActivity = Date.now(); 2642 setAccruing(accruing()); 2643 } 2644 }); 2645 addEventListener("pagehide", finalizeAndFlush); 2646 addEventListener("pageshow", (e) => { 2647 if (e.persisted) { 2648 lastActivity = Date.now(); 2649 setAccruing(accruing()); 2650 } 2651 }); 2652 2653 // Heartbeat: re-evaluate idle, remeasure, and drop an insurance 2654 // snapshot so long single-article reads / crashes aren't lost. 2655 setInterval(() => { 2656 setAccruing(accruing()); 2657 measureActive(); 2658 sinceSnapshot += heartbeatMs; 2659 if (sinceSnapshot >= snapshotMs && activeSeg) { 2660 sinceSnapshot = 0; 2661 flushAccrual(); 2662 snapshot(activeSeg); 2663 } 2664 }, heartbeatMs); 2665 2666 // Seed the landing article's segment (post pages only). 2667 const landingPid = str(targeting.post_id); 2668 if (landingPid) { 2669 switchTo(landingPid, ctx.category, location.pathname); 2670 } 2671 })(); 2672 })();</script>
2672 <title>Pen and the Pad Archives | Pen and the Pad</title><meta name="title" content="Pen and the Pad Archives | Pen and the Pad"><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="Pen and the Pad Archives | Pen and the Pad"><meta property="og:url" content="https://penandthepad.com/pen-and-the-pad/"><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/pen-and-the-pad/"><link rel="next" href="https://penandthepad.com/pen-and-the-pad/page/2/">
2672<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"/pen-and-the-pad/","url":"/pen-and-the-pad/","name":"Pen and the Pad Archives | Pen and the Pad","isPartOf":{"@id":"https://penandthepad.com/#website"},"primaryImageOfPage":{"@id":"https://penandthepad.com/pen-and-the-pad/#primaryimage"},"image":{"@id":"https://penandthepad.com/pen-and-the-pad/#primaryimage"},"thumbnailUrl":"https://cdn.penandthepad.com/4432663d3aef8104e28012cae7064470.jpg","inLanguage":"en-US","caption":"Fiction Books: Is Fiction Real? How does Fiction Influence Reality?"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://penandthepad.com/pen-and-the-pad/#primaryimage","url":"https://cdn.penandthepad.com/4432663d3aef8104e28012cae7064470.jpg","contentUrl":"https://cdn.penandthepad.com/4432663d3aef8104e28012cae7064470.jpg","width":750,"height":500,"caption":"Fiction Books: Is Fiction Real? How does Fiction Influence Reality?"},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://penandthepad.com/"},{"@type":"ListItem","position":2,"name":"Pen and the Pad"}]}]}</script>
2672 <link rel="alternate" type="application/atom+xml" title="Pen and the Pad » Pen and the Pad Category Feed" href="https://penandthepad.com/pen-and-the-pad/feed/"> <style>@media(max-width:767px){.cnx-pinned-wrapper{margin-top:10px}:root[data-floating-bar] .cnx-float.cnx-float-position-bottom{transform:translateY(calc(-1 * (var(--sticky-ad-height, 0px) + var(--floating-bar-height, 0px))))!important}}@media(min-width:768px){.cnx-float.cnx-float-position-bottom{transform:translateY(calc(-100px - var(--floating-bar-height, 0px)))!important}}.cnx-main-container.cnx-in-desktop{max-width:640px;max-height:360px}.instaread-popover[data-astro-cid-5riuvn2h]{--sheet-gap: 16px;position:fixed;inset:auto 0 var(--sheet-gap);width:min(640px,calc(100vw - 2 * var(--sheet-gap)));margin:0 auto;padding:0;border:0;border-radius:12px;background:#fff;color:inherit;overflow:hidden;container-type:inline-size;box-shadow:0 0 0 1px #00000014,0 16px 40px -12px #0000004d;opacity:0;translate:0 12px;transition:opacity .18s ease-out,translate .18s ease-out,overlay .18s allow-discrete,display .18s allow-discrete}.instaread-popover[data-astro-cid-5riuvn2h]:popover-open{opacity:1;translate:0 0;@starting-style{opacity:0;translate:0 12px}}@media(max-width:767.98px){.instaread-popover[data-astro-cid-5riuvn2h]{--sheet-gap: 0px;width:100%;border-radius:14px 14px 0 0;padding-bottom:env(safe-area-inset-bottom);translate:0 100%}.instaread-popover[data-astro-cid-5riuvn2h]:popover-open{@starting-style{translate:0 100%}}.instaread-popover[data-astro-cid-5riuvn2h]::backdrop{background:#0000004d}}@supports (anchor-name: --a){@media(min-width:768px){.instaread-popover[data-astro-cid-5riuvn2h]{top:anchor(bottom);bottom:auto;left:clamp(16px,anchor(left),calc(100vw - 656px));margin:8px 0 0;translate:0 -4px;position-try-fallbacks:flip-block;position-visibility:anchors-visible}.instaread-popover[data-astro-cid-5riuvn2h]:popover-open{@starting-style{translate:0 -4px}}}}.head[data-astro-cid-5riuvn2h]{display:flex;align-items:center;justify-content:flex-end;height:36px;padding-inline:0 6px;color:var(--color-zinc-600, #52525b)}.close[data-astro-cid-5riuvn2h]{display:grid;place-items:center;width:32px;height:32px;border-radius:999px;color:inherit;cursor:pointer}.close[data-astro-cid-5riuvn2h]:hover{background:#0000000d}.close[data-astro-cid-5riuvn2h]:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.instaread-player-slot[data-astro-cid-5riuvn2h]{height:218px;overflow:hidden}.instaread-player-slot[data-astro-cid-5riuvn2h] iframe.instaread-iframe{width:calc(100% + 8px)!important;max-width:none;height:220px!important}@container (min-width: 621px){.instaread-player-slot[data-astro-cid-5riuvn2h]{height:140px}.instaread-player-slot[data-astro-cid-5riuvn2h] iframe.instaread-iframe{height:144px!important}}.instaread-player-slot[data-astro-cid-5riuvn2h] .instaread-audio-player{margin:0!important}@media(prefers-reduced-motion:reduce){.instaread-popover[data-astro-cid-5riuvn2h]{transition:none}}instaread-listen[data-astro-cid-pkzhf4jp]:not([hidden]){display:flex;align-items:center}.listen-chip[data-astro-cid-pkzhf4jp]{display:inline-flex;align-items:center;gap:6px;height:24px;margin-block:-3px;padding-inline:8px 10px;border-radius:999px;border:1px solid color-mix(in oklab,var(--color-primary) 30%,transparent);background:color-mix(in oklab,var(--color-primary) 6%,transparent);color:var(--color-primary);font:inherit;letter-spacing:inherit;text-transform:inherit;white-space:nowrap;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,opacity .2s;@starting-style{opacity:0}}.listen-chip[data-astro-cid-pkzhf4jp]:hover,.listen-chip[data-astro-cid-pkzhf4jp][data-open]{background:color-mix(in oklab,var(--color-primary) 13%,transparent);border-color:var(--color-primary)}.listen-chip[data-astro-cid-pkzhf4jp]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.listen-chip[data-astro-cid-pkzhf4jp][data-playing]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-foreground, #fff)}.bars[data-astro-cid-pkzhf4jp]{display:inline-flex;align-items:center;gap:2px;height:12px}.bars[data-astro-cid-pkzhf4jp] i[data-astro-cid-pkzhf4jp]{width:2px;border-radius:1px;background:currentColor}.bars[data-astro-cid-pkzhf4jp] i[data-astro-cid-pkzhf4jp]:nth-child(1){height:5px;--d: -.2s}.bars[data-astro-cid-pkzhf4jp] i[data-astro-cid-pkzhf4jp]:nth-child(2){height:12px;--d: -.65s}.bars[data-astro-cid-pkzhf4jp] i[data-astro-cid-pkzhf4jp]:nth-child(3){height:8px;--d: -.4s}.bars[data-astro-cid-pkzhf4jp] i[data-astro-cid-pkzhf4jp]:nth-child(4){height:10px;--d: -.85s}[data-astro-cid-pkzhf4jp][data-playing] .bars[data-astro-cid-pkzhf4jp] i[data-astro-cid-pkzhf4jp]{animation:listen-meter .9s ease-in-out var(--d) infinite alternate}@keyframes listen-meter{0%{height:3px}to{height:12px}}.when-playing[data-astro-cid-pkzhf4jp],[data-astro-cid-pkzhf4jp][data-playing] .when-idle[data-astro-cid-pkzhf4jp]{display:none}[data-astro-cid-pkzhf4jp][data-playing] .when-playing[data-astro-cid-pkzhf4jp]{display:inline}@media(prefers-reduced-motion:reduce){.listen-chip[data-astro-cid-pkzhf4jp]{transition:none}[data-astro-cid-pkzhf4jp][data-playing] .bars[data-astro-cid-pkzhf4jp] i[data-astro-cid-pkzhf4jp]{animation:none}}.article-contents[data-astro-cid-7jion4xf].gated{overflow:hidden;position:relative;.toc-container{display:none}}
2672.amazon-products[data-astro-cid-sdbnxc7u]{--ink: #1f1f23;--muted: #71717a;--rule: #18181b;--hairline: #d4d4d8}.heading[data-astro-cid-sdbnxc7u]{margin:0 0 12px;font-size:18px;line-height:24px}.rows[data-astro-cid-sdbnxc7u]{margin:0;padding:0;border-top:2px solid var(--rule);border-bottom:1px solid var(--rule)}.row[data-astro-cid-sdbnxc7u]{display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-areas:"thumb info" "thumb buy";column-gap:16px;row-gap:10px;margin:0;padding:14px 0;color:var(--ink);font-variant-numeric:tabular-nums lining-nums}.row[data-astro-cid-sdbnxc7u]+.row[data-astro-cid-sdbnxc7u]{border-top:1px solid var(--hairline)}.thumb[data-astro-cid-sdbnxc7u]{grid-area:thumb;align-self:start}.thumb[data-astro-cid-sdbnxc7u] img[data-astro-cid-sdbnxc7u]{display:block;width:64px;height:64px;object-fit:contain}.info[data-astro-cid-sdbnxc7u]{grid-area:info;display:flex;flex-direction:column;gap:2px;min-width:0}.name[data-astro-cid-sdbnxc7u]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:var(--ink);font-size:16px;line-height:22px;font-weight:600;text-decoration:none;&[data-astro-cid-sdbnxc7u]:hover{color:var(--color-primary);text-decoration:underline}}.detail[data-astro-cid-sdbnxc7u]{overflow:hidden;color:var(--muted);font-size:14px;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.buy[data-astro-cid-sdbnxc7u]{grid-area:buy;display:flex;align-items:center;justify-content:space-between;gap:16px}.price[data-astro-cid-sdbnxc7u]{font-size:16px;line-height:22px;font-weight:600;white-space:nowrap}.button[data-astro-cid-sdbnxc7u]{display:inline-flex;align-items:center;border-radius:9999px;padding:9px 16px;background:var(--color-primary);color:var(--color-primary-foreground);font-family:var(--font-mono);font-size:12px;line-height:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background-color .15s;&[data-astro-cid-sdbnxc7u]:hover{background:color-mix(in srgb,var(--color-primary) 82%,black)}}.name[data-astro-cid-sdbnxc7u]:focus-visible,.button[data-astro-cid-sdbnxc7u]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.note[data-astro-cid-sdbnxc7u]{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:18px}@media(min-width:640px){.row[data-astro-cid-sdbnxc7u]{grid-template-columns:80px minmax(0,1fr) auto;grid-template-areas:"thumb info buy";align-items:center;column-gap:20px}.thumb[data-astro-cid-sdbnxc7u]{align-self:center}.thumb[data-astro-cid-sdbnxc7u] img[data-astro-cid-sdbnxc7u]{width:80px;height:80px}.buy[data-astro-cid-sdbnxc7u]{gap:20px}}/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */.video-transcript-body p{margin-bottom:1em;line-height:1.6}.video-transcript-body p:last-child{margin-bottom:0}.video-transcript-note{opacity:.7;font-size:.8125rem;font-style:italic}.featured-video iframe{width:100%;height:100%}.sponsored>p,.sponsored>h2,.sponsored>h3,.sponsored>h4,.sponsored>h5,.sponsored>h6,.sponsored>ul,.sponsored>ol,.sponsored>dl,.sponsored>pre{padding-left:calc(var(--spacing,.25rem) * 10)}@media(min-width:64rem){.sponsored>p,.sponsored>h2,.sponsored>h3,.sponsored>h4,.sponsored>h5,.sponsored>h6,.sponsored>ul,.sponsored>ol,.sponsored>dl,.sponsored>pre{padding-left:calc(var(--spacing,.25rem) * 24)}} 2673</style> 2674<style>.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}
2674.expand-enter-to,.expand-leave-from{max-height:200px;opacity:1} 2675</style> 2676<style>.icp-product-card[data-astro-cid-wnzspaez]{container-type:inline-size}@container (min-width:600px){.icp-product-card[data-astro-cid-wnzspaez]{grid-template-columns:repeat(2,minmax(0,1fr))}}.icp-product-header[data-astro-cid-wnzspaez]{order:0}@container (min-width:600px){.icp-product-header[data-astro-cid-wnzspaez]{order:1}}.icp-product-rank[data-astro-cid-wnzspaez],.icp-product-name[data-astro-cid-wnzspaez]{min-height:56px}.icp-product-logo[data-astro-cid-wnzspaez]{order:0}@container (min-width:600px){.icp-product-logo[data-astro-cid-wnzspaez]{order:2;max-height:50px}}.icp-product-cta[data-astro-cid-wnzspaez]{flex-direction:column;order:0;display:flex}@container (min-width:600px){.icp-product-cta[data-astro-cid-wnzspaez]{order:4}}.icp-product-attr[data-astro-cid-wnzspaez]{order:0}@container (min-width:600px){.icp-product-attr[data-astro-cid-wnzspaez]{order:3}}.icp-product-logo[data-astro-cid-37va56x7]{justify-content:flex-start}.icp-product-logo[data-astro-cid-37va56x7] img{max-width:250px}.icp-product-cta[data-astro-cid-37va56x7]{justify-content:flex-start}@media(min-width:48rem){.icp-product-rank[data-astro-cid-vqw45ux7],.icp-product-name[data-astro-cid-vqw45ux7]{min-height:56px}}.icp-link[data-astro-cid-vqw45ux7]:hover .icp-product-rank,.icp-link[data-astro-cid-vqw45ux7]:hover .icp-product-name{color:var(--color-secondary)}.icp-product-logo[data-astro-cid-vqw45ux7] img{max-width:200px}/*! 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-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial;--tw-content:"";--tw-tracking:initial}}}@layer components{.icp-widget .icp-product-card{gap:calc(var(--spacing,.25rem) * 4);border-radius:var(--radius-lg,var(--theme-radius-lg,.5rem));border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));padding:calc(var(--spacing,.25rem) * 4);
2676--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:var(--color-white,#fff);grid-template-columns:repeat(1,minmax(0,1fr));display:grid;container-type:inline-size}.icp-widget .icp-product-rank,.icp-widget .icp-product-name{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--color-secondary)}.icp-widget .icp-product-rank:after{--tw-content:".";content:var(--tw-content)}.icp-widget .icp-link:hover .icp-product-rank,.icp-widget .icp-link:hover .icp-product-name{color:var(--color-primary)}.icp-widget .icp-product-logo{margin-inline:auto;margin-block:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius,var(--theme-radius,.25rem));justify-content:center;align-items:center;width:100%}.icp-widget .icp-product-logo.loaded{background-color:#0000;background-image:none;height:100px;display:flex}.icp-widget .icp-product-logo img{object-fit:contain;width:auto;height:100%}.icp-widget .icp-product-cta{justify-content:center;align-items:center;display:flex}.icp-widget .icp-product-cta .button{margin-block:calc(var(--spacing,.25rem) * 4);cursor:pointer;border-style:var(--tw-border-style);width:fit-content;height:min-content;min-height:30px;padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);font-family:var(--font-mono,var(--theme-font-mono,"IBM Plex Mono", monospace));--tw-font-weight:var(--font-weight-semibold,600);font-size:12px;line-height:16px;font-weight:var(--font-weight-semibold,600);--tw-tracking:1.2px;letter-spacing:1.2px;text-transform:uppercase;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border-width:1px;border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-foreground);border-radius:3.40282e38px;justify-content:center;align-items:center;gap:10px}.icp-widget .icp-product-cta .button:hover{border-color:var(--color-tertiary);background-color:var(--color-tertiary)}.icp-widget .icp-product-cta .button.outline{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-primary);color:var(--color-primary);background-color:#0000}.icp-widget .icp-product-cta .button.outline:hover{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-white,#fff)}.icp-widget .icp-product-attr{row-gap:calc(var(--spacing,.25rem) * 0);min-height:auto;font-size:var(--text-xs,var(--theme-text-xs,.75em));line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));margin-top:auto}@media(min-width:48rem){.icp-widget .icp-product-attr{min-height:175px}}@container (min-width:600px){.icp-widget .icp-product-attr{min-height:calc(var(--spacing,.25rem) * 0)}}.icp-widget .icp-product-attr>div{column-gap:calc(var(--spacing,.25rem) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-gray-200,oklch(92.8% .006 264.531));padding-block:calc(var(--spacing,.25rem) * 1)}.icp-widget .icp-product-attr>div:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.icp-widget .icp-product-attr>div dt{width:calc(var(--spacing,.25rem) * 26);--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300)}.icp-widget .icp-product-attr>div dd{color:var(--color-gray-700,oklch(37.3% .034 259.733))}.icp-widget .icp-widget-disclaimer .tooltip-label{margin-left:calc(var(--spacing,.25rem) * 2);font-size:var(--text-xs,var(--theme-text-xs,.75em));line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));color:var(--color-gray-500,oklch(55.1% .027 264.364));flex-shrink:0}[data-icp-widget]:not(:has(.icp-products)),[data-icp-widget]:has(.icp-products[data-icp-state=empty]),.icp-widget .icp-skeleton{display:none}.icp-widget .icp-products[data-icp-state=loading] .icp-skeleton,.icp-widget .icp-products[data-icp-state=loading] .icp-product-rank,.icp-widget .icp-products[data-icp-state=loading] .icp-product-cta .button{background-image:linear-gradient(90deg,#18181b
267614 25%,#18181b08,#18181b14 75%);background-size:200% 100%;animation:1.6s ease-in-out infinite icp-shimmer}@media(prefers-reduced-motion:reduce){.icp-widget .icp-products[data-icp-state=loading] .icp-skeleton,.icp-widget .icp-products[data-icp-state=loading] .icp-product-rank,.icp-widget .icp-products[data-icp-state=loading] .icp-product-cta .button{animation:none}}.icp-widget .icp-products[data-icp-state=loading] .icp-skeleton{vertical-align:middle;border-radius:3.40282e38px;max-width:100%;height:.75em;display:inline-block}.icp-widget .icp-products[data-icp-state=loading] .icp-product-header .icp-product-rank{display:none}.icp-widget .icp-products[data-icp-state=loading] .icp-product-rank:after{content:none}.icp-widget .icp-products[data-icp-state=loading] .icp-product-logo{height:100px;display:flex}.icp-widget .icp-products[data-icp-state=loading] .icp-product-logo .icp-skeleton{width:75%;height:64%;max-width:calc(var(--spacing,.25rem) * 48);border-radius:var(--radius-lg,var(--theme-radius-lg,.5rem));display:block}.icp-widget .icp-products[data-icp-state=loading] .icp-product-description .icp-skeleton{width:100%}.icp-widget .icp-products[data-icp-state=loading] .icp-product-description .icp-skeleton:last-child{width:66.6667%}.icp-widget .icp-products[data-icp-state=loading] .icp-product-cta .button{color:#0000;border-color:#0000}.icp-widget .icp-products[data-icp-state=loading] .icp-product-attr svg{visibility:hidden}.icp-widget .icp-products[data-icp-state=ready] .icp-product-card>*{animation:.3s ease-out icp-fade-in}@media(prefers-reduced-motion:reduce){.icp-widget .icp-products[data-icp-state=ready] .icp-product-card>*{animation:none}}@keyframes icp-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@keyframes icp-fade-in{0%{opacity:0}}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-tracking{syntax:"*";inherits:false} 2677</style> 2678<style>@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-font-weight:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.icp-product-rank[data-astro-cid-574xbxas],.icp-product-name[data-astro-cid-574xbxas]{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);color:var(--color-primary)}.icp-product-rank[data-astro-cid-574xbxas]:after{display:none}.icp-link[data-astro-cid-574xbxas]:hover .icp-product-name{color:var(--color-tertiary)}.icp-product-card[data-astro-cid-574xbxas]{border-style:var(--tw-border-style);border-width:0;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-zinc-200,oklch(92% .004 286.32));padding-inline:calc(var(--spacing,.25rem) * 0);padding-block:calc(var(--spacing,.25rem) * 2);--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
2678dow);border-radius:0}.icp-product-card[data-astro-cid-574xbxas]:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.icp-product-card[data-astro-cid-574xbxas] a[data-astro-cid-574xbxas]{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.icp-product-logo[data-astro-cid-574xbxas]{margin:calc(var(--spacing,.25rem) * 0);background-color:#0000;width:64px;height:64px}.icp-product-rank[data-astro-cid-574xbxas]{background-color:var(--color-primary);width:24px;height:24px;color:var(--color-primary-foreground);border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}/*! 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-leading:initial;--tw-font-weight:initial;--tw-tracking:initial}}}.icp-widget-head[data-astro-cid-r2q5pr5m]{margin-bottom:calc(var(--spacing,.25rem) * 0);border-bottom:1px solid #0003;justify-content:space-between;align-items:center;position:relative}.icp-widget-headline[data-astro-cid-r2q5pr5m]{text-align:center;--tw-leading:var(--leading-normal,1.5);font-size:1rem;line-height:var(--leading-normal,1.5);--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);--tw-tracking:1px;letter-spacing:1px;color:var(--color-primary-foreground);margin-inline:calc(var(--spacing,.25rem) * 4);margin-bottom:calc(var(--spacing,.25rem) * 0);border-top-left-radius:var(--radius-lg,.5rem);border-top-right-radius:var(--radius-lg,.5rem);background-color:var(--color-primary);width:100%;padding:calc(var(--spacing,.25rem) * 2);text-transform:capitalize}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false} 2679</style> 2680<link rel="stylesheet" href="https://penandthepad.com/astrostatic/3a22e5c5/_astro/infinite.De1tChLT.css"> 2681<style>/*! 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} 2682</style> 2683<link rel="stylesheet" href="https://penandthepad.com/astrostatic/3a22e5c5/_astro/infinite.Dr6fWTgd.css"> 2684<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}
2684.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}#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)}} 2685</style> 2686<link rel="stylesheet" href="https://penandthepad.com/astrostatic/3a22e5c5/_astro/index.CCmax0bU.css"> 2687<style>/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */.input{border:1px solid var(--color-zinc-300);border-radius:3.40282e38px}
2687.input:focus{border-color:var(--color-primary)}html{scroll-padding-top:350px}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}} 2688.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))}} 2689</style> 2690<style>/*! 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-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial}}}.review-widget-block{background-color:var(--color-white,#fff);border-bottom:1px solid #0f172a1f;position:relative;overflow:hidden}.review-widget-block:has(+astro-island){border-bottom:none}.review-widget-block+astro-island{margin-top:-1rem;display:block}.review-widget-block .rwb-accent{background-color:var(--color-tertiary);height:3px}.review-widget-block .rwb-header{align-items:flex-start;gap:calc(var(--spacing,.25rem) * 5);padding-block:calc(var(--spacing,.25rem) * 7);border-bottom:1px solid #0f172a14;display:flex}.review-widget-block .rwb-logo-frame{background-color:#0f172a05;border:1px solid #0f172a14;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;padding:12px;display:flex}.review-widget-block .rwb-logo-image{object-fit:contain;max-width:100%;max-height:100%;width:auto!important;height:auto!important}.review-widget-block .rwb-header-text{min-width:calc(var(--spacing,.25rem) * 0);flex:1}.review-widget-block .rwb-title{margin:calc(var(--spacing,.25rem) * 0);margin-bottom:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);--tw-tracking:var(--tracking-tight,-.025em);letter-spacing:var(--tracking-tight,-.025em);color:var(--color-secondary);font-size:22px;line-height:28px}.review-widget-block .rwb-description{margin:calc(var(--spacing,.25rem) * 0);color:#71717a;font-size:14px;line-height:22px}.review-widget-block .rwb-price{margin-top:calc(var(--spacing,.25rem) * 3);align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;font-size:13px;display:flex}.review-widget-block .rwb-price-info{color:var(--color-secondary);font-weight:600}.review-widget-block .rwb-price-link{--tw-font-weight:var(--font-weight-semibold,600);font-size:11px;font-weight:var(--font-weight-semibold,600);text-transform:uppercase;letter-spacing:.12em;color:var(--color-tertiary);align-items:center;text-decoration-line:none;display:inline-flex;border:none!important}.review-widget-block .rwb-price-link:hover{text-decoration:underline;background:0 0!important}.review-widget-block .rwb-content-grid{grid-template-columns:1fr;display:grid}@media(min-width:768px){.review-widget-block .rwb-content-grid{grid-template-columns:1fr 1fr}.review-widget-block .rwb-ratings{border-right:1px solid #0f172a14}}.review-widget-block .rwb-ratings{padding-block:calc(var(--spacing,.25rem) * 6);padding-right:calc(var(--spacing,.25rem) * 6)}@media(min-width:48rem){.review-widget-block .rwb-ratings{padding-block:calc(var(--spacing,.25rem) * 7)}}.review-widget-block .rwb-ratings{border-bottom:1px solid #0f172a14}@media(min-width:768px){.review-widget-block .rwb-ratings{border-bottom:none}}.review-widget-block .rwb-overall{margin-bottom:calc(var(--spacing,.25rem) * 5);padding-bottom:calc(var(--spacing,.25rem) * 5);border-bottom:1px solid #0f172a0f;justify-content:space-between;align-items:baseline;display:flex}.review-widget-block .rwb-overall-label{--tw-font-weight:var(--font-weight-semibold,600);font-size:11px;font-weight:var(--font-weight-semibold,600);text-transform:uppercase;letter-spacing:.14em;color:#71717a}.review-widget-block .rwb-overall-value{align-items:baseline;gap:calc(var(--spacing,.25rem) * 3);display:flex}.review-widget-block .rwb-overall-number{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);--tw-tracking:var(--tracking-tight,-.025em);letter-spacing:var(--tracking-tight,-.025em);--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);color:var(--color-tertiary);font-size:32px}.review-widget-block .rwb-overall-stars{align-items:center;gap:calc(var(--spacing,.25rem) * .5);color:var(--color-tertiary);display:flex}.review-widget-block .rwb-other-ratings{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.review-widget-block .rwb-rating-row{align-items:center;gap:calc(var(--spacing,.25rem) * 3);grid-template-columns:1fr 80px 32px;display:grid}.review-widget-block .rwb-rating-label{--tw-font-weight:var(--font-weight-medium,500);font-size:12px;font-weight:var(--font-weight-medium,500);color:var(--color-secondary)}.review-widget-block .rwb-rating-track{height:calc(var(--spacing,.25rem) * 1);background:#0f172a0f;position:relative}.review-widget-block .rwb-rating-fill{top:calc(var(--spacing,.25rem) * 0);left:calc(var(--spacing,.25rem) * 0);background-color:var(--color-tertiary);height:100%;position:absolute}.review-widget-block .rwb-rating-value{text-align:right;--tw-font-weight:var(--font-weight-semibold,600);font-size:12px;font-weight:var(--font-weight-semibold,600);--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);color:var(--color-secondary)}.review-widget-block .rwb-proscons{gap:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 6);padding-left:calc(var(--spacing,.25rem) * 6);flex-direction:column;display:flex}@media(min-width:48rem){.review-widget-block .rwb-proscons{padding-block:calc(var(--spacing,.25rem) * 7)}}.review-widget-block .rwb-procon{flex-direction:column;gap:12px;display:flex}.review-widget-block .rwb-procon-label{align-items:center;gap:calc(var(--spacing,.25rem) * 3);--tw-font-weight:var(--font-weight-semibold,600);font-size:11px;font-weight:var(--font-weight-semibold,600);text-transform:uppercase;letter-spacing:.18em;color:var(--color-secondary);display:flex}.review-widget-block .rwb-procon-rule{background-color:var(--color-tertiary);flex-shrink:0;width:18px;height:1px;display:block}.review-widget-block .rwb-procon-cons .rwb-procon-rule{background-color:#0f172a2e}.review-widget-block .rwb-procon-list{margin:calc(var(--spacing,.25rem) * 0);gap:calc(var(--spacing,.25rem) * 2);padding:calc(var(--spacing,.25rem) * 0);flex-direction:column;list-style-type:none;display:flex}.review-widget-block .rwb-procon-item{margin:calc(var(--spacing,.25rem) * 0);align-items:flex-start;gap:calc(var(--spacing,.25rem) * 3);padding:calc(var(--spacing,.25rem) * 0);color:var(--color-secondary);font-size:14px;line-height:20px;
2690display:flex}.review-widget-block .rwb-procon-item:before{display:none!important}.review-widget-block .rwb-procon-icon{width:18px;height:18px;color:var(--color-tertiary);flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.review-widget-block .rwb-procon-icon-cons{color:var(--color-gray-500)}.review-widget-block .rwb-body{padding-block:calc(var(--spacing,.25rem) * 6)}@media(min-width:48rem){.review-widget-block .rwb-body{padding-block:calc(var(--spacing,.25rem) * 7)}}.review-widget-block .rwb-body{border-top:1px solid #0f172a14}.review-widget-block .rwb-body-prose{color:var(--color-secondary);font-size:15px;line-height:24px}.review-widget-block .rwb-body-prose>:first-child{margin-top:0!important}.review-widget-block .rwb-body-prose>:last-child{margin-bottom:0!important}.review-widget-block .rwb-footer{align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 4);border-top:1px solid #0f172a14;flex-direction:column;display:flex}.review-widget-block .rwb-footer-links{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem) * 3);flex-wrap:wrap;display:flex}@media(min-width:768px){.review-widget-block .rwb-footer{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 4);flex-flow:wrap}.review-widget-block .rwb-footer:not(:has(.rwb-footer-links)){justify-content:flex-end}}.review-widget-block .rwb-link-divider{background:#0f172a2e;flex-shrink:0;align-self:center;width:1px;height:12px;display:block}.review-widget-block .rwb-additional-link{--tw-font-weight:var(--font-weight-semibold,600);font-size:11px;font-weight:var(--font-weight-semibold,600);text-transform:uppercase;letter-spacing:.12em;color:var(--color-tertiary);align-items:center;text-decoration-line:none;display:inline-flex;border:none!important}.review-widget-block .rwb-additional-link:hover{text-decoration:underline;background:0 0!important}.review-widget-block .rwb-footer-cta{align-items:center;gap:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex}.review-widget-block .rwb-footer-note{text-align:center;color:#71717a;font-size:11px}@media(min-width:768px){.review-widget-block .rwb-footer-cta{align-items:flex-end;margin-left:auto}.review-widget-block .rwb-footer-note{text-align:right}}.review-widget-block .rwb-footer-link{align-items:center;gap:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-semibold,600);font-size:11px;font-weight:var(--font-weight-semibold,600);text-transform:uppercase;letter-spacing:.14em;color:var(--color-tertiary);text-decoration-line:none;transition:gap .15s;display:inline-flex;border:none!important}.review-widget-block .rwb-footer-link:hover{gap:12px;background:0 0!important}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false} 2691</style> 2692<style>.ad-fluid iframe[id^=google_ads_iframe]{display:block;margin-inline:auto} 2693.glide{position:relative;width:100%;box-sizing:border-box}.glide *{box-sizing:inherit}.glide__track{overflow:hidden}.glide__slides{position:relative;width:100%;list-style:none;backface-visibility:hidden;transform-style:preserve-3d;touch-action:pan-Y;overflow:hidden;margin:0;padding:0;white-space:nowrap;display:flex;flex-wrap:nowrap;will-change:transform}.glide__slides--dragging{user-select:none}.glide__slide{width:100%;height:100%;flex-shrink:0;white-space:normal;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.glide__slide a{user-select:none;-webkit-user-drag:none;-moz-user-select:none;-ms-user-select:none}.glide__arrows,.glide__bullets{-webkit-touch-callout:none;user-select:none}.glide--rtl{direction:rtl} 2694.glide__arrow{position:absolute;display:block;top:50%;z-index:2;color:#fff;text-transform:uppercase;padding:9px 12px;background-color:transparent;border:2px solid rgba(255,255,255,.5);border-radius:4px;box-shadow:0 .25em .5em #0000001a;text-shadow:0 .25em .5em rgba(0,0,0,.1);opacity:1;cursor:pointer;transition:opacity .15s ease,border .3s ease-in-out;transform:translateY(-50%);line-height:1}.glide__arrow:focus{outline:none}.glide__arrow:hover{border-color:#fff}.glide__arrow--left{left:2em}.glide__arrow--right{right:2em}.glide__arrow--disabled{opacity:.33}.glide__bullets{position:absolute;z-index:2;bottom:2em;left:50%;display:inline-flex;list-style:none;transform:translate(-50%)}.glide__bullet{background-color:#ffffff80;width:9px;height:9px;padding:0;border-radius:50%;border:2px solid transparent;transition:all .3s ease-in-out;cursor:pointer;line-height:0;box-shadow:0 .25em .5em #0000001a;margin:0 .25em}.glide__bullet:focus{outline:none}.glide__bullet:hover,.glide__bullet:focus{border:2px solid #fff;background-color:#ffffff80}.glide__bullet--active{background-color:#fff}.glide--swipeable{cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.glide--dragging{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */.glide[data-astro-cid-zs6k2ebs],.glide__track[data-astro-cid-zs6k2ebs]{width:100%}@media(prefers-reduced-motion:no-preference){.glide__track[data-astro-cid-zs6k2ebs]{transition:height .25s ease-out}}.glide__slide[data-astro-cid-zs6k2ebs]{flex:none!important;width:auto!important}.glide[data-astro-cid-zs6k2ebs] .glide__bullet--active[data-astro-cid-zs6k2ebs]>.bullet[data-astro-cid-zs6k2ebs]{background:var(--color-primary)} 2695/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */.tab-active[data-astro-cid-y26hj7yi]{color:var(--color-white,#fff);background-color:var(--color-secondary)}.item-hidden[data-astro-cid-y26hj7yi]{display:none}[data-astro-cid-y26hj7yi][data-category-item] img+[data-blur]{opacity:1!important}[data-astro-cid-y26hj7yi][data-category-item] [data-blur]+img{z-index:1;position:absolute} 2696.prose .sp-state{cursor:pointer}.prose .sp-state:hover :is(path,polygon),.prose .sp-state:focus-visible :is(path,polygon){fill:#1c7db1;transition:fill .15s ease}.prose .sp-state:focus-visible{outline:2px solid #1c7db1;outline-offset:2px} 2697/*! 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-border-style:solid;--tw-font-weight:initial}}
2697}.accordion-item[data-astro-cid-pjbldbwd]{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-gray-400,oklch(70.7% .022 261.325));align-self:center;width:100%}.accordion-summary[data-astro-cid-pjbldbwd]{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 4);width:100%;padding-block:calc(var(--spacing,.25rem) * 6);-webkit-user-select:none;user-select:none;list-style:none;display:flex}.accordion-summary[data-astro-cid-pjbldbwd]::-webkit-details-marker{display:none}.accordion-summary[data-astro-cid-pjbldbwd]:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.accordion-title[data-astro-cid-pjbldbwd]{text-align:left;--tw-font-weight:var(--font-weight-bold,700);font-size:20px;font-weight:var(--font-weight-bold,700);text-transform:uppercase;color:var(--color-secondary);flex:1}.accordion-toggle[data-astro-cid-pjbldbwd]{color:var(--color-gray-600,oklch(44.6% .03 256.802));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.accordion-item[data-astro-cid-pjbldbwd][open] .accordion-toggle[data-astro-cid-pjbldbwd]{transform:rotate(180deg)}.accordion-item[data-astro-cid-pjbldbwd]::details-content{content-visibility:visible}.accordion-panel[data-astro-cid-pjbldbwd]{visibility:hidden;grid-template-rows:0fr;display:grid}.accordion-item[data-astro-cid-pjbldbwd][open] .accordion-panel[data-astro-cid-pjbldbwd]{visibility:visible;grid-template-rows:1fr}.accordion-panel-inner[data-astro-cid-pjbldbwd]{padding-right:calc(var(--spacing,.25rem) * 4);min-height:0;overflow:hidden}.accordion-panel-pad[data-astro-cid-pjbldbwd]{padding-bottom:calc(var(--spacing,.25rem) * 4)}@media(prefers-reduced-motion:no-preference){.accordion-panel[data-astro-cid-pjbldbwd]{transition:grid-template-rows .3s ease-in-out,visibility .3s}.accordion-toggle[data-astro-cid-pjbldbwd]{transition:transform .3s}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false} 2698.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}
2698}@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}} 2699.calc-label{font-family:var(--font-mono);font-size:11px;font-weight:600;line-height:1.4;text-transform:uppercase;letter-spacing:.09em;color:#71717a}.calc-field-label{font-family:var(--font-mono);font-size:13px;font-weight:600;line-height:1.4;color:#71717a}.calc-field{border-radius:8px;border:1px solid rgba(24,24,27,.14);background:#fff;padding:8px 12px;font-size:15px;color:var(--color-secondary);transition:border-color .15s ease,box-shadow .15s ease}.calc-field:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 35%,transparent)}.calc-table{width:100%;font-size:14px;line-height:22px;font-variant-numeric:tabular-nums lining-nums;border-collapse:collapse;border-bottom:1px solid #18181b}.calc-table thead th{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#71717a;padding:12px 16px;text-align:right;border-top:2px solid #18181b;border-bottom:1px solid #d4d4d8}.calc-table thead th:first-child{text-align:left}.calc-table tbody td{padding:9px 16px;text-align:right;color:#1f1f23;border-top:1px solid #f0f0f1}.calc-table tbody td:first-child{text-align:left;color:#71717a}.calc-table tbody tr:nth-child(odd) td{background:#fafaf9}.calc-table tbody tr:hover td{background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.calc-table tfoot td{padding:12px 16px;text-align:right;font-weight:700;color:var(--color-secondary);border-top:2px solid #18181b}.calc-table tfoot td:first-child{text-align:left}.calc-reset{cursor:pointer;border-radius:9999px;border:2px solid var(--color-primary);background:transparent;color:var(--color-primary);font-family:var(--font-mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;padding:6px 16px;transition:background-color .15s ease,color .15s ease,transform .08s ease}.calc-reset:hover{background:var(--color-primary);color:var(--color-primary-foreground)}.calc-reset:active{transform:translateY(1px)}.calc-inputbox{transition:border-color .15s ease,box-shadow .15s ease}.calc-inputbox:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 35%,transparent)}@media(prefers-reduced-motion:reduce){.calc-reset{transition:background-color .15s ease,color .15s ease}.calc-reset:active{transform:none}} 2700</style> 2701<style>:root{--ta-violet: rgba(51, 47, 255, .6);--ta-cyan: rgba(46, 226, 226, .8);--ta-base: #141e2d;--ta-fluff-violet: radial-gradient( circle at 15% 90%, var(--ta-violet) -50%, rgba(51, 47, 255, 0) 40% );--ta-fluff-cyan: radial-gradient( circle at 105% -10%, var(--ta-cyan) -50%, rgba(46, 226, 226, 0) 30% );--ta-fill: radial-gradient(closest-side, var(--ta-base) 0%, var(--ta-base))}.ta-galaxy{background-color:transparent;background-image:url("data:image/svg+xml,%3csvg%20width='374'%20height='374'%20viewBox='0%200%20374%20374'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='187'%20cy='187'%20r='186'%20stroke='%2328874B'%20opacity='0.4'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg%20width='374'%20height='374'%20viewBox='0%200%20374%20374'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='187'%20cy='187'%20r='186'%20stroke='%2328874B'%20stroke-dasharray='16%2020'%20opacity='0.4'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg%20width='77'%20height='78'%20viewBox='0%200%2077%2078'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20opacity='0.2'%20d='M16.5%2045C25.3366%2045%2032.5%2052.1634%2032.5%2061C32.5%2069.8366%2025.3366%2077%2016.5%2077C7.66345%2077%200.5%2069.8366%200.499999%2061C0.499999%2052.1634%207.66345%2045%2016.5%2045ZM60.5%2045C69.3365%2045%2076.5%2052.1634%2076.5%2061C76.5%2069.8365%2069.3365%2077%2060.5%2077C51.6634%2077%2044.5%2069.8366%2044.5%2061C44.5%2052.1634%2051.6634%2045%2060.5%2045ZM16.5%200.999999C25.3366%200.999999%2032.5%208.16345%2032.5%2017C32.5%2025.8366%2025.3366%2033%2016.5%2033C7.66345%2033%200.499998%2025.8366%200.499997%2017C0.499997%208.16345%207.66344%201%2016.5%200.999999ZM60.5%200.999997C69.3365%200.999997%2076.5%208.16345%2076.5%2017C76.5%2025.8366%2069.3365%2033%2060.5%2033C51.6634%2033%2044.5%2025.8366%2044.5%2017C44.5%208.16345%2051.6634%200.999998%2060.5%200.999997Z'%20stroke='%2393C953'/%3e%3c/svg%3e"),url
2701("data:image/svg+xml,%3csvg%20width='93'%20height='92'%20viewBox='0%200%2093%2092'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_6262_32725)'%20opacity='0.4'%3e%3ccircle%20cx='1.5'%20cy='1'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='27.5'%20cy='1'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='53.5'%20cy='1'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='79.5'%20cy='1'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='1.5'%20cy='27'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='27.5'%20cy='27'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='53.5'%20cy='27'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='79.5'%20cy='27'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='1.5'%20cy='53'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='27.5'%20cy='53'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='53.5'%20cy='53'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='79.5'%20cy='53'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='1.5'%20cy='79'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='27.5'%20cy='79'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='53.5'%20cy='79'%20r='1'%20fill='%2328874B'/%3e%3ccircle%20cx='79.5'%20cy='79'%20r='1'%20fill='%2328874B'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_6262_32725'%3e%3crect%20width='92'%20height='92'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg%20width='190'%20height='190'%20viewBox='0%200%20190%20190'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='95'%20cy='95'%20r='95'%20stroke='%2328874B'%20opacity='0.4'/%3e%3c/svg%3e"),var(--ta-fluff-violet),var(--ta-fluff-cyan),var(--ta-fill);background-repeat:no-repeat;background-position:-35vh -30vh,80vw -15vh,78vw 104%,60% -4%,80vw 35%,center,center,center;background-blend-mode:exclusion}.ta-galaxy-inset{background-position:-15% 180%,980px -110px,78vw 104%,0% 0%,900px -150px,center,center,center}.ta-black-hole{background-color:transparent;background-image:var(--ta-fluff-violet),var(--ta-fluff-cyan),var(--ta-fill);background-repeat:no-repeat;background-blend-mode:exclusion}.ta-obsidian-cyan-offset{background-color:var(--ta-base);background-image:radial-gradient(circle at 70% 60%,var(--ta-cyan) 0%,rgba(46,226,226,0) 70%);background-repeat:no-repeat;background-blend-mode:soft-light}.ta-h1{font-size:clamp(40px,calc(2.5rem + (1vw - 3.6px)*.7407),48px);line-height:1.2}.ta-h2{font-size:clamp(34px,calc(2.25rem + (1vw - 3.6px)*.3704),38px);line-height:1.2}.ta-h3{font-size:clamp(24px,calc(1.5rem + (1vw - 3.6px)*.7407),32px);line-height:1.4} 2702</style> 2703<style>/*! 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-65bb584b],[data-v-65bb584b]:before,[data-v-65bb584b]:after,[data-v-65bb584b]::backdrop{--tw-font-weight:initial;--tw-border-style:solid}}}label[data-v-65bb584b]{margin-bottom:calc(var(--spacing,.25rem) * 4);--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}input[data-v-65bb584b],select[data-v-65bb584b]{margin-bottom:calc(var(--spacing,.25rem) * 2);height:calc(var(--spacing,.25rem) * 10);border-radius:var(--radius-md,.375rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-400,oklch(70.7% .022 261.325));padding-inline:calc(var(--spacing,.25rem) * 4)}input[data-v-65bb584b]:last-of-type{margin-bottom:calc(var(--spacing,.25rem) * 10)}p[data-v-65bb584b]{margin-bottom:calc(var(--spacing,.25rem) * 6)}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid} 2704.message-enter-active[data-v-67a2f6e5]{transition:all .3s ease-out}.message-enter-from[data-v-67a2f6e5]{opacity:0;transform:translateY(20px)}.message-enter-to[data-v-67a2f6e5]{opacity:1;transform:translateY(0)}.orb-enter-active[data-v-67a2f6e5]{animation:orb-bounce-in-67a2f6e5 .5s cubic-bezier(.34,1.56,.64,1)}.orb-leave-active[data-v-67a2f6e5]{transition:all .2s ease-in}.orb-enter-from[data-v-67a2f6e5],.orb-leave-to[data-v-67a2f6e5]{opacity:0;transform:scale(0)}@keyframes orb-bounce-in-67a2f6e5{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.tooltip-enter-active[data-v-67a2f6e5],.tooltip-leave-active[data-v-67a2f6e5]{transition:all .2s ease-out}.tooltip-enter-from[data-v-67a2f6e5],.tooltip-leave-to[data-v-67a2f6e5]{opacity:0;transform:translateY(8px)}
2704.chat-enter-active[data-v-67a2f6e5]{animation:chat-expand-67a2f6e5 .3s cubic-bezier(.34,1.56,.64,1)}.chat-leave-active[data-v-67a2f6e5]{animation:chat-collapse-67a2f6e5 .2s ease-in forwards}@keyframes chat-expand-67a2f6e5{0%{opacity:0;transform:scale(.8) translateY(20px);transform-origin:bottom right}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes chat-collapse-67a2f6e5{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.8) translateY(20px);transform-origin:bottom right}} 2705.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} 2706.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} 2707</style><style>astro-island,astro-slot,astro-static-slot{display:contents}</style><style type="text/css">.inline-top:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 50px; } 2708@media screen and (min-width: 768px) { .inline-top:not([data-loaded]) { min-width: 728px; max-width: 728px; min-height: 90px; max-height: 90px; } } 2709@media screen and (min-width: 1240px) { .inline-top:not([data-loaded]) { min-width: 728px; max-width: 1000px; min-height: 90px; max-height: 250px; } }</style><style type="text/css">.section-banner:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 250px; } 2710@media screen and (min-width: 768px) { .section-banner:not([data-loaded]) { min-width: 728px; max-width: 728px; min-height: 90px; max-height: 90px; } }</style><style type="text/css">.inline-article-native:not([data-loaded]) { width: 100%; height: 100%; }</style><style type="text/css">.section-banner:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 250px; } 2711@media screen and (min-width: 768px) { .section-banner:not([data-loaded]) { min-width: 728px; max-width: 728px; min-height: 90px; max-height: 90px; } }</style><style type="text/css">.section-banner:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 250px; } 2712@media screen and (min-width: 768px) { .section-banner:not([data-loaded]) { min-width: 728px; max-width: 728px; min-height: 90px; max-height: 90px; } }</style><style type="text/css">.section-banner:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 250px; } 2713@media screen and (min-width: 768px) { .section-banner:not([data-loaded]) { min-width: 728px; max-width: 728px; min-height: 90px; max-height: 90px; } }</style><style type="text/css">.right-rail:not([data-loaded]) { min-width: 300px; max-width: 300px; min-height: 250px; max-height: 250px; } 2714@media screen and (min-width: 768px) { .right-rail:not([data-loaded]) { min-width: 300px; max-width: 300px; min-height: 250px; max-height: 250px; } }</style><style type="text/css">.right-rail:not([data-loaded]) { min-width: 300px; max-width: 300px; min-height: 250px; max-height: 250px; } 2715@media screen and (min-width: 768px) { .right-rail:not([data-loaded]) { min-width: 300px; max-width: 300px; min-height: 250px; max-height: 250px; } }</style><style type="text/css">.right-rail:not([data-loaded]) { min-width: 300px; max-width: 300px; min-height: 250px; max-height: 250px; } 2716@media screen and (min-width: 768px) { .right-rail:not([data-loaded]) { min-width: 300px; max-width: 300px; min-height: 250px; max-height: 250px; } }</style><style type="text/css">
2716.inline-bottom:not([data-loaded]) { min-width: 300px; max-width: 320px; min-height: 50px; max-height: 50px; } 2717@media screen and (min-width: 768px) { .inline-bottom:not([data-loaded]) { min-width: 728px; max-width: 728px; min-height: 90px; max-height: 90px; } } 2718@media screen and (min-width: 1240px) { .inline-bottom:not([data-loaded]) { min-width: 728px; max-width: 1000px; min-height: 90px; max-height: 250px; } }</style></head> <body class="skybox-auto-collapse">
2718<script type="module">(()=>{const l=document.querySelector("[data-ad-slot='skybox']");if(!l)return;let m=-1/0;const p=()=>{m=performance.now()};document.addEventListener("pointerdown",p,{capture:!0,passive:!0}),document.addEventListener("keydown",p,{capture:!0});const w=a=>{if(performance.now()-m<400)return a(),()=>{};const s=()=>{i(),a()},i=()=>{document.removeEventListener("pointerdown",s,!0),document.removeEventListener("keydown",s,!0)};return document.addEventListener("pointerdown",s,{capture:!0,passive:!0}),document.addEventListener("keydown",s,{capture:!0}),i};let r=null;const c=()=>{r?.(),r=w(()=>{l.setAttribute("data-empty",""),document.dispatchEvent(new CustomEvent("skybox-ad-hidden"))})};setTimeout(()=>{!l.hasAttribute("data-loaded")&&!l.hasAttribute("data-empty")&&c()},4e3),window.googletag=window.googletag||{cmd:[]},window.googletag?.cmd.push(()=>{let a=!1,s=null;const i=e=>{const t=document.getElementById("main-navigation");t&&(t.style.top=`${e}px`)},v=300,E=4e3,y=10,b=(e,t,n,d)=>{if(!window.ResizeObserver)return n();let o;const g=window.setTimeout(()=>{clearTimeout(o),u.disconnect(),d()},E),f=()=>{clearTimeout(o),!(e.offsetHeight<y)&&(t(),o=window.setTimeout(()=>{clearTimeout(g),u.disconnect(),n()},v))},u=new ResizeObserver(f);u.observe(e),f()},h=e=>{if(a)return;a=!0;const t=e.closest("[data-ad-slot='skybox']");t&&(r?.(),r=null,t.removeAttribute("data-empty"),T(),b(e,()=>i(t.offsetHeight),()=>I(t,e),c))},I=(e,t)=>{r?.(),r=null,e.removeAttribute("data-empty"),e.setAttribute("data-loaded",""),window.ResizeObserver&&new ResizeObserver(()=>{t.offsetHeight===0&&c()}).observe(t),i(e.offsetHeight),document.dispatchEvent(new CustomEvent("skybox-ad-ready",{detail:{height:e.offsetHeight}})),window.ResizeObserver&&(s=new ResizeObserver(n=>{for(const d of n){const o=d.contentRect.height;i(o),document.dispatchEvent(new CustomEvent("skybox-ad-height-changed",{detail:{height:o}}))}}),s.observe(e))},T=()=>{const e=window.googletag.pubads().getSlots().find(n=>{const d=n.getSlotElementId(),o=document.getElementById(d);return o?o.closest(".inline-top")!==null:!1});if(!e)return;window.googletag?.destroySlots([e]);const t=document.querySelector(".inline-top");t&&(t.style.visibility="hidden",w(()=>{t.style.setProperty("display","none")}))};window.googletag.pubads().addEventListener("slotRenderEnded",e=>{if(e.isEmpty)return;const t=e.slot.getSlotElementId(),n=document.getElementById(t);!n||!n.closest("[data-ad-slot='skybox']")||h(n)})})})();</script>
2718<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>
2718<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>
2718<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>
2718<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>
2718<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>
2718<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>
2718<script type="module">document.body.clientWidth<1480||(window.googletag=window.googletag||{cmd:[]},window.googletag?.cmd.push(()=>{let i=!1;const l=()=>{if(i)return;i=!0;const t=document.createElement("div"),e=document.createElement("div"),n=` 2719 position: fixed; 2720 top: 0; 2721 bottom: 0; 2722 width: calc((100vw - 1200px) / 2); 2723 background: transparent; 2724 cursor: pointer; 2725 `;t.style.cssText=n+"left: 0;",e.style.cssText=n+"right: 0;",t.id="left-gutter",e.id="right-gutter";const d=()=>{const o=document.body?.dataset?.src;o&&(window.location.href=o)};t.addEventListener("click",d),e.addEventListener("click",d);const s=()=>{const o=window.innerWidth,r=1200;if(o>r){t.style.display="block",e.style.display="block";const c=(o-r)/2;t.style.width=`${c}px`,e.style.width=`${c}px`}else t.style.display="none",e.style.display="none"};document.body.appendChild(t),document.body.appendChild(e),s(),window.addEventListener("resize",s)};window.googletag.pubads().addEventListener("slotRenderEnded",t=>{if(t.isEmpty)return;const e=t.slot.getSlotElementId(),n=document.getElementById(e);!n||!n.closest("[data-ad-slot='curtain']")||l()})}));</script>
2725 <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>
2725<script>(function(){const gtmId = "GTM-NR3XXWX8"; 2726 2727 // Patched vs the stock GTM snippet: the gtm.js script-tag injection is 2728 // pulled out of the IIFE and deferred to idle. window.dataLayer and gtm.start 2729 // event are still created synchronously, so every dataLayer.push between 2730 // now and load queues on the plain array and GTM drains it on boot â 2731 // no events are lost, they arrive later. 2732 // 2733 // Why: gtm.js is ~177KB and lands mid-load alongside the ad stack, where it 2734 // costs main thread we need for INP and competes with the LCP image for 2735 // bandwidth. Nothing in the ad path depends on it (GPT is loaded by the 2736 // Assertive Yield manager, not GTM). 2737 ;(function (w, d, s, l, i) { 2738 w[l] = w[l] || [] 2739 w[l].push({ 2740 "gtm.start": new Date().getTime(), 2741 event: "gtm.js", 2742 }) 2743 2744 const load = function () { 2745 const f = d.getElementsByTagName(s)[0], 2746 j = d.createElement(s), 2747 dl = l != "dataLayer" ? "&l=" + l : "" 2748 j.async = true 2749 j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl 2750 f.parentNode.insertBefore(j, f) 2751 } 2752 2753 // Cap the wait: ad-heavy pages can stay busy for many seconds and may 2754 // never hit a true idle period. 2755 if ("requestIdleCallback" in w) { 2756 w.requestIdleCallback(load, { timeout: 4000 }) 2757 } else { 2758 w.setTimeout(load, 2000) 2759 } 2760 })(window, document, "script", "dataLayer", gtmId) 2761})();</script>
2761<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="1eYoun" prefix="s49" 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="{"mode":[0,"push"],"hasDrawerTop":[0,false],"hasSubmenus":[0,true],"class":[0],"data-mobile-navigation":[0,true]}" ssr="" client="visible" opts="{"name":"MobileNavigationVue","value":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 & 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 & 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/">
2761 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="s28" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"How to Cite"],"categoryId":[0,18998],"href":[0,"/how-to-cite/"],"category":[0,{"id":[0,18998],"slug":[0,"how-to-cite"],"name":[0,"How to Cite"],"description":[0,""],"link":[0,"/how-to-cite/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/how-to-cite/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/how-to-cite/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/how-to-cite/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"How to Cite"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/how-to-cite/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"How to Cite"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[[0,{"name":[0,"Pen and the Pad"],"href":[0,"/pen-and-the-pad/"]}]]]}],"variant":[0,"mobile"],"locale":[0,"en"]}" ssr="" client="visible" opts="{"name":"DynamicCategoryPosts","value":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="s29" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"Language & Lit"],"categoryId":[0,18995],"href":[0,"/language-lit/"],"category":[0,{"id":[0,18995],"slug":[0,"language-lit"],"name":[0,"Language & Lit"],"description":[0,""],"link":[0,"/language-lit/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/language-lit/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/language-lit/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/language-lit/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"Language & Lit"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/language-lit/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"Language & Lit"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[]]}],"variant":[0,"mobile"],"locale":[0,"en"]}" ssr="" client="visible" opts="{"name":"DynamicCategoryPosts","value":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="s30" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"Rhyme & Rhythm"],"categoryId":[0,18997],"href":[0,"/rhyme-rhythm/"],"category":[0,{"id":[0,18997],"slug":[0,"rhyme-rhythm"],"name":[0,"Rhyme & Rhythm"],"description":[0,""],"link":[0,"/rhyme-rhythm/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/rhyme-rhythm/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/rhyme-rhythm/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/rhyme-rhythm/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"Rhyme & Rhythm"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/rhyme-rhythm/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"Rhyme & Rhythm"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[]]}],"variant":[0,"mobile"],"locale":[0,"en"]}" ssr="" client="visible" opts="{"name":"DynamicCategoryPosts","value":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/">
2761 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="s31" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"The Rewrite"],"categoryId":[0,18996],"href":[0,"/the-rewrite/"],"category":[0,{"id":[0,18996],"slug":[0,"the-rewrite"],"name":[0,"The Rewrite"],"description":[0,""],"link":[0,"/the-rewrite/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/the-rewrite/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/the-rewrite/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/the-rewrite/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"The Rewrite"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/the-rewrite/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"The Rewrite"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[]]}],"variant":[0,"mobile"],"locale":[0,"en"]}" ssr="" client="visible" opts="{"name":"DynamicCategoryPosts","value":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="s27" 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="{"domain":[0,"penandthepad.com"]}" ssr="" client="idle" opts="{"name":"ButtonNavigationSearch","value":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="280Jay" prefix="s53" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"How to Cite"],"categoryId":[0,18998],"href":[0,"/how-to-cite/"],"category":[0,{"id":[0,18998],"slug":[0,"how-to-cite"],"name":[0,"How to Cite"],"description":[0,""],"link":[0,"/how-to-cite/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/how-to-cite/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/how-to-cite/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/how-to-cite/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"How to Cite"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/how-to-cite/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"How to Cite"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[[0,{"name":[0,"Pen and the Pad"],"href":[0,"/pen-and-the-pad/"]}]]]}],"domain":[0,"penandthepad.com"],"href":[0,"/how-to-cite/"],"translatedLabel":[0,"How to Cite"]}" ssr="" client="visible" opts="{"name":"DynamicNavigationDropdown","value":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-
27615 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="s32" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"How to Cite"],"categoryId":[0,18998],"href":[0,"/how-to-cite/"],"category":[0,{"id":[0,18998],"slug":[0,"how-to-cite"],"name":[0,"How to Cite"],"description":[0,""],"link":[0,"/how-to-cite/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/how-to-cite/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/how-to-cite/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/how-to-cite/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"How to Cite"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/how-to-cite/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"How to Cite"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[[0,{"name":[0,"Pen and the Pad"],"href":[0,"/pen-and-the-pad/"]}]]]}],"variant":[0,"desktop"],"locale":[0,"en"],"featureKicker":[0],"featureCta":[0],"featureImage":[0],"featureOnly":[0]}" ssr="" client="visible" opts="{"name":"DynamicCategoryPosts","value":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="ZSYKeJ" prefix="s50" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"Language & Lit"],"categoryId":[0,18995],"href":[0,"/language-lit/"],"category":[0,{"id":[0,18995],"slug":[0,"language-lit"],"name":[0,"Language & Lit"],"description":[0,""],"link":[0,"/language-lit/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/language-lit/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/language-lit/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/language-lit/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"Language & Lit"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/language-lit/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"Language & Lit"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[]]}],"domain":[0,"penandthepad.com"],"href":[0,"/language-lit/"],"translatedLabel":[0,"Language & Lit"]}" ssr="" client="visible" opts="{"name":"DynamicNavigationDropdown","value":true}" await-children=""><!--[--><a href="/language-lit/" class="more-dropdown-link nav-more-link">Language & Lit</a><div data-dropdown-open="false"><button class="nav-item group" data-open="false"><!--[-->Language & 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-
27615 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="s33" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"Language & Lit"],"categoryId":[0,18995],"href":[0,"/language-lit/"],"category":[0,{"id":[0,18995],"slug":[0,"language-lit"],"name":[0,"Language & Lit"],"description":[0,""],"link":[0,"/language-lit/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/language-lit/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/language-lit/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/language-lit/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"Language & Lit"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/language-lit/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"Language & Lit"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[]]}],"variant":[0,"desktop"],"locale":[0,"en"],"featureKicker":[0],"featureCta":[0],"featureImage":[0],"featureOnly":[0]}" ssr="" client="visible" opts="{"name":"DynamicCategoryPosts","value":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="13E9c4" prefix="s51" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"Rhyme & Rhythm"],"categoryId":[0,18997],"href":[0,"/rhyme-rhythm/"],"category":[0,{"id":[0,18997],"slug":[0,"rhyme-rhythm"],"name":[0,"Rhyme & Rhythm"],"description":[0,""],"link":[0,"/rhyme-rhythm/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/rhyme-rhythm/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/rhyme-rhythm/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/rhyme-rhythm/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"Rhyme & Rhythm"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/rhyme-rhythm/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"Rhyme & Rhythm"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[]]}],"domain":[0,"penandthepad.com"],"href":[0,"/rhyme-rhythm/"],"translatedLabel":[0,"Rhyme & Rhythm"]}" ssr="" client="visible" opts="{"name":"DynamicNavigationDropdown","value":true}" await-children=""><!--[--><a href="/rhyme-rhythm/" class="more-dropdown-link nav-more-link">Rhyme & Rhythm</a><div data-dropdown-open="false"><button class="nav-item group" data-open="false"><!--[-->Rhyme & 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-
27615 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="s34" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"Rhyme & Rhythm"],"categoryId":[0,18997],"href":[0,"/rhyme-rhythm/"],"category":[0,{"id":[0,18997],"slug":[0,"rhyme-rhythm"],"name":[0,"Rhyme & Rhythm"],"description":[0,""],"link":[0,"/rhyme-rhythm/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/rhyme-rhythm/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/rhyme-rhythm/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/rhyme-rhythm/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"Rhyme & Rhythm"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/rhyme-rhythm/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"Rhyme & Rhythm"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[]]}],"variant":[0,"desktop"],"locale":[0,"en"],"featureKicker":[0],"featureCta":[0],"featureImage":[0],"featureOnly":[0]}" ssr="" client="visible" opts="{"name":"DynamicCategoryPosts","value":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="s48" 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="{"width":[0,"auto"],"data-nav-more-button":[0,true]}" ssr="" client="idle" opts="{"name":"ButtonNavigationDropdown","value":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-
27615 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="LBKdg" prefix="s52" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"The Rewrite"],"categoryId":[0,18996],"href":[0,"/the-rewrite/"],"category":[0,{"id":[0,18996],"slug":[0,"the-rewrite"],"name":[0,"The Rewrite"],"description":[0,""],"link":[0,"/the-rewrite/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/the-rewrite/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/the-rewrite/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/the-rewrite/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"The Rewrite"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/the-rewrite/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"The Rewrite"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[]]}],"domain":[0,"penandthepad.com"],"href":[0,"/the-rewrite/"],"translatedLabel":[0,"The Rewrite"]}" ssr="" client="visible" opts="{"name":"DynamicNavigationDropdown","value":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="s35" 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="{"navitem":[0,{"type":[0,"category-posts"],"label":[0,"The Rewrite"],"categoryId":[0,18996],"href":[0,"/the-rewrite/"],"category":[0,{"id":[0,18996],"slug":[0,"the-rewrite"],"name":[0,"The Rewrite"],"description":[0,""],"link":[0,"/the-rewrite/"],"parent":[0,19000],"taxonomy":[0,"category"],"expert":[0],"_links":[0,{"self":[1,[[0,{"href":[0,"https://penandthepad.com/the-rewrite/"]}]]],"wp:post_type":[1,[[0,{"href":[0,"https://penandthepad.com/the-rewrite/posts/"]}]]]}],"meta":[0,{"canonical":[0,"https://penandthepad.com/the-rewrite/"],"indexable":[0,true],"yoast_head_json":[0,{"title":[0,"The Rewrite"],"description":[0,""],"robots":[0,{}],"canonical":[0,"https://penandthepad.com/the-rewrite/"],"og_locale":[0,"en_US"],"og_type":[0,"object"],"og_title":[0,"The Rewrite"],"og_description":[0,""],"og_image":[0],"schema":[0,{}]}]}]}],"posts":[1,[]],"subcategories":[1,[]]}],"variant":[0,"desktop"],"locale":[0,"en"],"featureKicker":[0],"featureCta":[0],"featureImage":[0],"featureOnly":[0]}" ssr="" client="visible" opts="{"name":"DynamicCategoryPosts","value":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 data-ad-slot="curtain" class="curtain data-empty:hidden print:hidden" data-unit-base="/5055/penandthepad" data-category="pen-and-the-pad"></div> <div class="wrapper flex flex-col b penandthepad-com pt-5"> <div class="flex items-center justify-center min-h-[90px]! md:min-
2761h-[130px]! print:hidden inline-top data-empty:hidden" data-ad-slot="inline-top"> </div> <nav aria-label="Breadcrumb"> <ol class="text-[12px]/[13px] tracking-[1.2px] flex items-center space-x-2 font-mono list-none p-0 m-0"> <li class="flex items-center space-x-2"> <a class="py-1.5 uppercase font-semibold" href="/"> Home </a> </li><li class="flex items-center space-x-2"> <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" aria-hidden="true" class="lucide lucide-chevron-right-icon lucide-chevron-right w-4 text-primary"><path d="m9 18 6-6-6-6" /></svg> <span class="py-1.5 uppercase font-semibold bg-primary text-primary-foreground px-2" aria-current="page"> Pen and the Pad </span> </li> </ol> </nav><div class="flex lg:flex-row flex-col gap-[30px]"> <div class="shrink min-w-0 w-full flex items-center justify-between md:pr-4"> <h1 class="h1 archive-title">Pen and the Pad</h1> <astro-island uid="1Nm8co" prefix="s25" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/CopyFeedButton.BBgwGKSJ.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"url":[0,"https://penandthepad.com/pen-and-the-pad/feed/"]}" ssr="" client="idle" opts="{"name":"CopyFeedButton","value":true}" await-children=""><!--[--><!----><span class="sr-only" aria-live="polite" data-v-788e3fe6=""></span><!--]--><!--astro:end--></astro-island> </div> <!-- used to mirror the section widths below, do not delete --> <div class="hidden lg:block lg:min-w-[300px] lg:max-w-[300px]"></div> </div> <div class="flex lg:flex-row flex-col gap-[30px] items-stretch">
2761 <div class="shrink min-w-0 w-full"> <div class="mb-12"> <div class="flex flex-col gap-7"> <div class="flex items-start justify-between gap-4"> <div class="section-title pt-[12px] grow section-rule"> <h2> Highlights </h2> </div> <div class="hidden md:block"> </div> </div> <div> <div class="grid grid-cols-1 md:grid-cols-3 gap-6"> <div class="group/card space-y-[17px] md:row-span-2 md:col-span-2"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/fiction-mirror-society-19310.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAoAEAMBIgACEQEDEQH/xABgAAADAQAAAAAAAAAAAAAAAAABAwUHEAACAgICAwEBAAAAAAAAAAABAgMEBQYAIRETMRIiAQEBAAAAAAAAAAAAAAAAAAAEBREAAQUBAAAAAAAAAAAAAAAAAQACERIxA//aAAwDAQACEQMRAD8AJz+0axkbmDGaIrVIPbM0ShHQOwY+iMBi7gHscVrGZzlvaa+Ohu5OXF14HlQmTypIHlUaOTtST10Qeb1sSivJamhAjlaGQs6fyxI+EkcmaFGl7XsHdtos9pnQtPKP3ISPH1m74Hmb9HNJI1uqkGiloEwHYv/Z" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/4432663d3aef8104e28012cae7064470.jpg?w=640" srcset="https://cdn.penandthepad.com/4432663d3aef8104e28012cae7064470.jpg?w=128 128w, https://cdn.penandthepad.com/4432663d3aef8104e28012cae7064470.jpg?w=256 256w, https://cdn.penandthepad.com/4432663d3aef8104e28012cae7064470.jpg?w=512 512w, https://cdn.penandthepad.com/4432663d3aef8104e28012cae7064470.jpg?w=1024 1024w" alt="Fiction Books: Is Fiction Real? How does Fiction Influence Reality?" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/language-lit/"> <astro-island uid="ZAVzHD" prefix="s0" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"Language & Lit"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Language & Lit</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[30px]/[36px] text-[18px]/[22px]" href="/fiction-mirror-society-19310.html"> Fiction Books: Is Fiction Real? How does Fiction Influence Reality? </a><div class="md:block hidden"></div><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/kori-morgan/"> Kori Morgan </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Nov 27, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/purpose-vs-meaning-poem-3636.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAoAEAMBIgACE
2761QEDEQH/xABhAAADAQAAAAAAAAAAAAAAAAAAAwQFEAACAgICAgMAAAAAAAAAAAABAgMEAAYRMQUiMkFhAQEAAAAAAAAAAAAAAAAAAAAFEQABBAMBAAAAAAAAAAAAAAABAAIDERITMSL/2gAMAwEAAhEDEQA/ACPUdPkdVSkCzngAWgx5PQGLu6XqYaSMVzC6twUNhQykfXtle4ySV9e8k0MjRkw1SShKn5HNHS55rOvVTPM8pHRdi3Y/cCMkg9bD2ksGMusRxf/Z" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/58d11ad7216bebb6047e6258ee3c5d4e.jpg?w=640" srcset="https://cdn.penandthepad.com/58d11ad7216bebb6047e6258ee3c5d4e.jpg?w=128 128w, https://cdn.penandthepad.com/58d11ad7216bebb6047e6258ee3c5d4e.jpg?w=256 256w, https://cdn.penandthepad.com/58d11ad7216bebb6047e6258ee3c5d4e.jpg?w=512 512w" alt="What Does 'Beats' in Poetry Mean?" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/rhyme-rhythm/"> <astro-island uid="unz6i" prefix="s1" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"Rhyme & Rhythm"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Rhyme & Rhythm</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/purpose-vs-meaning-poem-3636.html"> Purpose Vs. Meaning of a Poem </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/john-jeremy-dean/"> John Jeremy Dean </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Nov 7, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/title-capitalization-tool.html"> <div class="relative w-full aspect-video"> <div class="h-full w-full bg-primary/10 flex items-center justify-center aspect-video"><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-image-icon lucide-image w-12 h-12 text-primary/40" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2" ry="2" /><circle cx="9" cy="9" r="2" /><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /></svg></div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/how-to-cite/"> <astro-island uid="1d8vSU" prefix="s2" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"How to Cite"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">How to Cite</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/title-capitalization-tool.html"> Free Online Title Capitalization Tool </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16
2761px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/contributor/"> Contributor </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Oct 28, 2022</div></div></div> </div> </div> <div class="justify-center md:hidden flex"> </div> </div> </div> <div class="mb-12"> <div class="flex justify-center ad-fluid section-banner data-empty:hidden" data-ad-slot="section-banner"> </div> </div> <div> <div class="flex flex-col gap-7"> <div class="flex items-start justify-between gap-4"> <div class="section-title pt-[12px] grow section-rule"> <h2> All Pen and the Pad Articles </h2> </div> <div class="hidden md:block"> </div> </div> <div> <div class="grid md:grid-cols-3 gap-8 mb-8"> <div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/citation-generator.html"> <div class="relative w-full aspect-video"> <div class="h-full w-full bg-primary/10 flex items-center justify-center aspect-video"><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-image-icon lucide-image w-12 h-12 text-primary/40" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2" ry="2" /><circle cx="9" cy="9" r="2" /><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /></svg></div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/how-to-cite/"> <astro-island uid="1d8vSU" prefix="s3" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"How to Cite"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">How to Cite</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/citation-generator.html"> Free Online Citation Generator </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/contributor/"> Contributor </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Oct 19, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/organize-poem-lines-3608.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAMwAAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAACgAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAA1G1kYXQSAAoIP8z+SMBDQbQyvQFlqjtDJRX6/0AgEBAYAAAAAAABRRRQIBTJggg0jokZtHK07J+jJKpgyYj/j2TJoPyEtGpuHu2VGXrtAE/Y5jDOKCigU6KZ1ZyJmD/nVUKvbEYoPNQiy/j7Ut1DBR9PImVq3HveM7F83mwNtjn5CW6yvpUyT5WFSntFoiPnvKx9t+ibt6nz2/CSlU8JrkrLebSrrn1g0FHqY9Po+z/hqR3hjNH2kTINOiAv7GcXnci2y35QVreYS7THDIIFjvA=" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/a5eded1a3e83925425a87fbf4ba04643.jpg?w=640" srcset="https://cdn.penandthepad.com/a5eded1a3e83925425a87fbf4ba04643.jpg?w=128 128w, https://cdn.penandthepad.com/a5eded1a3e83925425a87fbf4ba04643.jpg?w=256 256w, https://cdn.penandthepad.com/a5eded1a3e83925425a87fbf4ba04643.jpg?w=512 512w" alt="Poem Structure: What are stanzas in poems? Plus, Organize Poem Lines" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2">
2761<a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/rhyme-rhythm/"> <astro-island uid="unz6i" prefix="s4" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"Rhyme & Rhythm"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Rhyme & Rhythm</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/organize-poem-lines-3608.html"> Poem Structure: What are stanzas in poems? Plus, Organize Poem Lines </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/john-jeremy-dean/"> John Jeremy Dean </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Oct 14, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/narrative-techniques-romeo-juliet-2008.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAKMAAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAACgAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAAq21kYXQSAAoIP8z+SMBDQbQylAFlrjtDJRf6/+AgEBAQAAAAAAABRRRQAAjey3ZKexB1UwLt1qkIOMs+FvhegE3UrPljkcYo9rDnJKPuu6Y8x4fu3ZN0+tJIacf9Pt1Di51vvjuaETiHsI1ZZu50XGyX7ziu2K/2m79QCO0EFUdB5EsOnTmrePKb6Rhhrd7LZMFvvGtv8ePbObE233SQAVU3XeKy5H7A" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/040607091522145250cad8aca0562b95.jpg?w=640" srcset="https://cdn.penandthepad.com/040607091522145250cad8aca0562b95.jpg?w=128 128w, https://cdn.penandthepad.com/040607091522145250cad8aca0562b95.jpg?w=256 256w, https://cdn.penandthepad.com/040607091522145250cad8aca0562b95.jpg?w=512 512w" alt="Analysis of the "Romeo & Juliet" Prologue Sonnet" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/language-lit/"> <astro-island uid="ZAVzHD" prefix="s5" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"Language & Lit"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Language & Lit</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/narrative-techniques-romeo-juliet-2008.html"> Narrative Techniques in "Romeo and Juliet" </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16
2761px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/michael-mason/"> Michael Mason </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Sep 30, 2022</div></div></div><div class="md:col-span-3 my-8"> <div class="has-data-empty:hidden print:hidden"> <div class="flex items-center gap-4"> <div class="flex-1 border-t border-zinc-300"></div> <span class="text-xs uppercase font-semibold text-zinc-600">Advertisement</span> <div class="flex-1 border-t border-zinc-300"></div> </div> <div class="py-2"> <div class="flex justify-center ad-fluid inline-article-native data-empty:hidden" data-ad-slot="inline-article-native"> </div> </div> <div class="border-t border-zinc-300"></div> </div> </div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/five-examples-compoundcomplex-sentence-3561.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAoAEAMBIgACE
2761QEDEQH/xABiAAEBAQAAAAAAAAAAAAAAAAAGBAUQAAIBAwQDAQAAAAAAAAAAAAECAwQFEQAGEiITITFBAQEAAAAAAAAAAAAAAAAAAAAFEQACAgIDAQAAAAAAAAAAAAABAgMSAAQFE0ER/9oADAMBAAIRAxEAPwBxtPb9Vc6aneZ4Ei49KeU9psfRj8Grr/tMJCaesuawUqgt4adu6ZGeLKFOQB8xp3cJZKea2iGRow1ThghK5HE+jjWw4DtEX7EHAJ96Ji0YUDFS4cyl7ffWxuTkthuslUr0hK18XP/Z" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/e5638fa0302f4fbe3a65e6b52b4ca357.jpg?w=640" srcset="https://cdn.penandthepad.com/e5638fa0302f4fbe3a65e6b52b4ca357.jpg?w=128 128w, https://cdn.penandthepad.com/e5638fa0302f4fbe3a65e6b52b4ca357.jpg?w=256 256w, https://cdn.penandthepad.com/e5638fa0302f4fbe3a65e6b52b4ca357.jpg?w=512 512w" alt="Five Examples of a Compound-Complex Sentence" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/the-rewrite/"> <astro-island uid="Z1Ug1n8" prefix="s6" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"The Rewrite"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">The Rewrite</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/five-examples-compoundcomplex-sentence-3561.html"> Five Examples of a Compound-Complex Sentence </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/kate-beck/"> Kate Beck </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Sep 23, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/write-footnotes-endnotes-apa-style-2247.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAGcAAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAACgAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAAb21kYXQSAAoIP8z+SMBDQbQyWWV+K0ElE/z94CAQEEgAAAAAAAEEEEAAwkpLF9YttVwX1BACECHVsJ5ZGMZ2uClXB5mK3tCota+QiJFmjnuSHgKUzE9nzdJpMjjaqUEgImsqoYlJ7nmi1Y3g" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/abfdf2cb28c0e3c6ab16525885369c5c.jpg?w=640" srcset="https://cdn.penandthepad.com/abfdf2cb28c0e3c6ab16525885369c5c.jpg?w=128 128w, https://cdn.penandthepad.com/abfdf2cb28c0e3c6ab16525885369c5c.jpg?w=256 256w, https://cdn.penandthepad.com/abfdf2cb28c0e3c6ab16525885369c5c.jpg?w=512 512w" alt="How to Cite a Book Chapter in APA Format" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2">
2761<a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/how-to-cite/"> <astro-island uid="1d8vSU" prefix="s7" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"How to Cite"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">How to Cite</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/write-footnotes-endnotes-apa-style-2247.html"> How to Write Footnotes and Endnotes in APA Style </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/kimberly-l-tohill/"> Kimberly L. Tohill </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Sep 14, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/cite-website-mla-format-author-publishing-date-2123.html"> <div class="relative w-full aspect-video"> <div class="h-full w-full bg-primary/10 flex items-center justify-center aspect-video"><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-image-icon lucide-image w-12 h-12 text-primary/40" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2" ry="2" /><circle cx="9" cy="9" r="2" /><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /></svg></div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/how-to-cite/"> <astro-island uid="1d8vSU" prefix="s8" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"How to Cite"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">How to Cite</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/cite-website-mla-format-author-publishing-date-2123.html"> How to Cite a Website in MLA Format Without an Author or Publishing Date </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/maya-black/"> Maya Black </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Sep 14, 2022</div></div></div><div class="md:col-span-3 my-8"> <div class="has-data-empty:hidden print:hidden"> <div class="flex items-center gap-4"> <div class="flex-1 border-t border-zinc-300"></div> <span class="text-xs uppercase font-semibold text-zinc-600">Advertisement</span> <div class="flex-1 border-t border-zinc-300"></div> </div> <div class="py-2"> <div class="flex justify-center ad-fluid section-banner data-empty:hidden" data-ad-slot="section-banner"> </div> </div> <div class="border-t border-zinc-300"></div> </div> </div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/write-discussion-essay-4069.html">
2761 <div class="relative w-full aspect-video"> <div class="h-full w-full bg-primary/10 flex items-center justify-center aspect-video"><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-image-icon lucide-image w-12 h-12 text-primary/40" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2" ry="2" /><circle cx="9" cy="9" r="2" /><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /></svg></div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/the-rewrite/"> <astro-island uid="Z1Ug1n8" prefix="s9" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"The Rewrite"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">The Rewrite</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/write-discussion-essay-4069.html"> How to Write a Discussion Essay </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/regan-hennessy/"> Regan Hennessy </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Sep 5, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/discussing-diction-poem-2055.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAI0AAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAACgAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAAlW1kYXQSAAoIP8z+SMBDQbQyf2WiN0MnFfz/4CAAEBAAAAAAAAEkkkggFMlxFVdjjN91X6ictiCrulZg0vjpSh7EZeGwypqNCk2UYexxOKubLwqw+4iB5/oZTUnHlzciWPUG9SW9N69DW7/hM6yrZJpQdISP8s2NYoBNYM9oic5615zk56uwWuBAgzm/39PejTI=" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/2f69214d4475dc9f6cb09655dfeff001.jpg?w=640" srcset="https://cdn.penandthepad.com/2f69214d4475dc9f6cb09655dfeff001.jpg?w=128 128w, https://cdn.penandthepad.com/2f69214d4475dc9f6cb09655dfeff001.jpg?w=256 256w, https://cdn.penandthepad.com/2f69214d4475dc9f6cb09655dfeff001.jpg?w=512 512w" alt="How to Have a Private Family Cemetery" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/rhyme-rhythm/"> <astro-island uid="unz6i" prefix="s10" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"Rhyme & Rhythm"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Rhyme & Rhythm</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/discussing-diction-poem-2055.html"> Discussing the Diction of a Poem </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16
2761px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/kate-prudchenko/"> Kate Prudchenko </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 14, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/formal-diction-examples-poetry-2041.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAJQAAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAACgAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAAnG1kYXQSAAoIP8z+SMBDQbQyhQFlrjtDJRf8/8AgABAQAAAAAAABRRRQIBghIezTnk3Hg22PYU8qHHeN8uLfjn917fVxFhk/Hpr6oUjR7M3FGAT8p48G/UEA1olcjqxncdmPW50FfHFpj+m72DIngRVeNKc5HNiDq39aE/e6WpOVvLSRwm6Xjx5zFM3tPWGNP/f9+GU5bky2" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/892f32aa017bc98905f291d4be0daf25.jpg?w=640" srcset="https://cdn.penandthepad.com/892f32aa017bc98905f291d4be0daf25.jpg?w=128 128w, https://cdn.penandthepad.com/892f32aa017bc98905f291d4be0daf25.jpg?w=256 256w, https://cdn.penandthepad.com/892f32aa017bc98905f291d4be0daf25.jpg?w=512 512w" alt="Formal Diction Examples in Poetry" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/rhyme-rhythm/"> <astro-island uid="unz6i" prefix="s11" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"Rhyme & Rhythm"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Rhyme & Rhythm</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/formal-diction-examples-poetry-2041.html"> Formal Diction Examples in Poetry </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/kate-prudchenko/"> Kate Prudchenko </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 14, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/forms-diction-21522.html"> <div class="relative w-full aspect-video"> <div class="h-full w-full bg-primary/10 flex items-center justify-center aspect-video"><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-image-icon lucide-image w-12 h-12 text-primary/40" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2" ry="2" /><circle cx="9" cy="9" r="2" /><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /></svg></div> </div> </a><div class="flex items-start justify-between gap-2">
2761<a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/rhyme-rhythm/"> <astro-island uid="unz6i" prefix="s12" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"Rhyme & Rhythm"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Rhyme & Rhythm</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/forms-diction-21522.html"> 4 Forms Of Diction </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/suzy-kerr/"> Suzy Kerr </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 14, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/student-learns-writing-argumentative-essay-2088.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAAoAEAMBIgACE
2761QEDEQH/xABpAAADAQAAAAAAAAAAAAAAAAACBAYHEAACAgAGAgMAAAAAAAAAAAABAgMEAAUGESFBEhMiMVEBAQEAAAAAAAAAAAAAAAAAAAMEEQABAgQHAAAAAAAAAAAAAAACAREABCExAxITFCJBwf/aAAwDAQACEQMRAD8AKlqqOxqQU1WSxlssQCTLHKoilDcmRzx4FeQRijzjUteCFVy+uYmARvbYjeTy52ZAB+dnGxUlAqS7Ad4Sghha18okPDfag9YEkmTBCCZyUeov7F2HtRItSXU+SCjG1+7LH//Z" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/87667105de3619a01c2fb6701ece9824.jpg?w=640" srcset="https://cdn.penandthepad.com/87667105de3619a01c2fb6701ece9824.jpg?w=128 128w, https://cdn.penandthepad.com/87667105de3619a01c2fb6701ece9824.jpg?w=256 256w, https://cdn.penandthepad.com/87667105de3619a01c2fb6701ece9824.jpg?w=512 512w" alt="What a Student Learns From Writing an Argumentative Essay" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/the-rewrite/"> <astro-island uid="Z1Ug1n8" prefix="s13" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"The Rewrite"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">The Rewrite</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/student-learns-writing-argumentative-essay-2088.html"> What a Student Learns From Writing an Argumentative Essay </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/van-thompson/"> Van Thompson </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 1, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/rules-writing-reading-response-essay-3968.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAKIAAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAACgAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAAqm1kYXQSAAoIP8z+SMBDQbQykwFlqjtDJRX6/6AgEBAQAAAAAAABRRRQAMG4Tu96yBGPVU6Fkssn1RvyfrOsflj89fpAldpgxyOqrzP0Ka1G3d8QM7YQ0Yb/MCqkGf7KX8LcE9uzrGLB/0uBmW/MhRbt/RICJQpihIjXZ306+48ztZ/yz47jr3tHDgidbWhbK9MV/ry8fxSqWVOSCg5LaFr6NZin30A=" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/49271c3033794969b32cd55590de3696.jpg?w=640" srcset="https://cdn.penandthepad.com/49271c3033794969b32cd55590de3696.jpg?w=128 128w, https://cdn.penandthepad.com/49271c3033794969b32cd55590de3696.jpg?w=256 256w, https://cdn.penandthepad.com/49271c3033794969b32cd55590de3696.jpg?w=512 512w" alt="How to Cite Passages From a Book in an Essay" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2">
2761<a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/the-rewrite/"> <astro-island uid="Z1Ug1n8" prefix="s14" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"The Rewrite"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">The Rewrite</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/rules-writing-reading-response-essay-3968.html"> Rules for Writing a Reading Response Essay </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/jana-sosnowski/"> Jana Sosnowski </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 1, 2022</div></div></div><div class="md:col-span-3 my-8"> <div class="has-data-empty:hidden print:hidden"> <div class="flex items-center gap-4"> <div class="flex-1 border-t border-zinc-300"></div> <span class="text-xs uppercase font-semibold text-zinc-600">Advertisement</span> <div class="flex-1 border-t border-zinc-300"></div> </div> <div class="py-2"> <div class="flex justify-center ad-fluid section-banner data-empty:hidden" data-ad-slot="section-banner"> </div> </div> <div class="border-t border-zinc-300"></div> </div> </div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/identify-literary-devices-4237.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAF4AAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAACgAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAAZm1kYXQSAAoIP8z+SMBDQbQyUGWiN0MnFfr/4CAAEBAAAAAAAAEkkkgAwbc4JaplUISrdYGNRGcD+Kv0WiC9vzcVq1kRqia6p4sHXN5TPoxSgCKCe7cWUozk5Zb6g9b7BsGg" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/af661eb9fad2e2b2f0e131ffc992181d.jpg?w=640" srcset="https://cdn.penandthepad.com/af661eb9fad2e2b2f0e131ffc992181d.jpg?w=128 128w, https://cdn.penandthepad.com/af661eb9fad2e2b2f0e131ffc992181d.jpg?w=256 256w, https://cdn.penandthepad.com/af661eb9fad2e2b2f0e131ffc992181d.jpg?w=512 512w" alt="How to Cut Angles for Wood Braces for Shelves" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/language-lit/"> <astro-island uid="ZAVzHD" prefix="s15" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"Language & Lit"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Language & Lit</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/identify-literary-devices-4237.html"> How to Identify Literary Devices </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16
2761px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/editorial-team/"> Editorial Team </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 1, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/write-essay-theme-book-2200.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAMAAAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAACgAAAAxhdjFDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAAyG1kYXQSAAoIP8z+SMBDQbQysQFlqjtDJRX6/6AgABAQAAAAAAABRRRQIBhlFNLyqxkdHJXXVF8ndiCFemqN2vx1TQs74+tAHGVG1ZmNxx9/SBdbaNOMkRrT0GV155A9a0jDTwOcJ0uGYElggBDjV5YRSunbY04Z6iI4KEJDqcIKttrXO43nz+jkF5Ts7dznMvRZvX6alm2VFEVHsh0QogewP5/y/AFM2SwBVeWJJWd71R5XoxfiFxLkUiGlNWoaUY67knI=" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/a8473af9366a1f4e04ab3b0f058bbb38.jpg?w=640" srcset="https://cdn.penandthepad.com/a8473af9366a1f4e04ab3b0f058bbb38.jpg?w=128 128w, https://cdn.penandthepad.com/a8473af9366a1f4e04ab3b0f058bbb38.jpg?w=256 256w, https://cdn.penandthepad.com/a8473af9366a1f4e04ab3b0f058bbb38.jpg?w=512 512w" alt="How to Write an Essay on the Theme of a Book" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/language-lit/"> <astro-island uid="ZAVzHD" prefix="s16" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"Language & Lit"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">Language & Lit</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/write-essay-theme-book-2200.html"> How to Write an Essay on the Theme of a Book </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/soheila-battaglia/"> Soheila Battaglia </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 1, 2022</div></div></div><div class="group/card space-y-[17px]"><div class="flex flex-col w-full"><a class="block group w-full overflow-hidden relative" href="/write-conclusion-compare-contrast-essay-2057.html"> <div class="relative w-full aspect-video"> <div class="w-full h-full relative" data-lazyimage=""> <img alt="" src="data:image/avif;base64,AAAAGGZ0eXBhdmlmAAAAAG1pZjFtaWFmAAAA0m1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAAA8gAAAIAAAAAjaWluZgAAAAAAAQAAABVpbmZlAgAAAAABAABhdjAxAAAAAFZpcHJwAAAAOGlwY28AAAAUaXNwZQAAAAAAAAAQAAAACgAAAAxhdj
2761FDgT9AAAAAABBwaXhpAAAAAAMKCgoAAAAWaXBtYQAAAAAAAAABAAEDAYIDAAAAiG1kYXQSAAoIP8z+SMBDQbQycmWqO0MnF/z/4CAQEAgAAAAAAAFFFFAgB2uBE2r5E6QxojTZvKEvsn8aC1+hKrcTLnxCibQw9daTZ1dH2rrpGjkreXCltKxfg7vx+UTdci2ODMQt0DoTDUrj+3v/uNz059CuXd3dQHF14RW8p0oVG37PaA==" decoding="async" aria-hidden="true" class="w-full h-full object-cover aspect-video absolute inset-0" style="z-index: -1"> <div data-blur="" class="absolute inset-0 transition-opacity duration-300" style="backdrop-filter: blur(20px); z-index: 1;"></div> <img src="https://cdn.penandthepad.com/234cb223907a42a74b3d9f1ee1a601d0.jpg?w=640" srcset="https://cdn.penandthepad.com/234cb223907a42a74b3d9f1ee1a601d0.jpg?w=128 128w, https://cdn.penandthepad.com/234cb223907a42a74b3d9f1ee1a601d0.jpg?w=256 256w, https://cdn.penandthepad.com/234cb223907a42a74b3d9f1ee1a601d0.jpg?w=512 512w" alt="What Should the Introduction Look Like When Writing an Essay?" loading="lazy" fetchpriority="auto" decoding="async" data-image="true" style="opacity:0" width="640" height="500" class="w-full h-full object-cover aspect-video transition-opacity duration-300"> </div> </div> </a><div class="flex items-start justify-between gap-2"><a class="inline-block uppercase text-[12px] leading-[16px] font-mono font-semibold self-start tracking-widest text-nowrap max-w-full bg-primary text-primary-foreground hover:bg-primary/90 overflow-hidden text-ellipsis" href="/the-rewrite/"> <astro-island uid="Z1Ug1n8" prefix="s17" component-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/Ticker.BM4Gldko.js" component-export="default" renderer-url="https://penandthepad.com/astrostatic/3a22e5c5/_astro/client.GG9X53Pw.js" props="{"text":[0,"The Rewrite"]}" ssr="" client="idle" opts="{"name":"Ticker","value":true}" await-children=""><div class="ticker-container px-[8px] py-[6px] flex" style="--scroll-distance:-0px;" data-v-34ac2891=""><span class="w-full truncate ticker-text" data-v-34ac2891="">The Rewrite</span></div><!--astro:end--></astro-island> </a></div></div><a class="font-semibold text-secondary hover:text-primary line-clamp-3 text-ellipsis md:text-[18px]/[22px] text-[18px]/[22px]" href="/write-conclusion-compare-contrast-essay-2057.html"> How to Write a Conclusion for a Compare & Contrast Essay </a><div class="gap-x-7 mt-2 uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500 flex flex-col"><a class="text-secondary hover:text-primary font-semibold" href="/author/megan-ritchie/"> Megan Ritchie </a><div class="uppercase font-mono text-[12px] leading-[16px] tracking-widest text-zinc-500">Apr 1, 2022</div></div></div> </div> <div class="mb-8"> <div class="flex justify-center ad-fluid section-banner data-empty:hidden" data-ad-slot="section-banner"> </div> </div> <div class="flex flex-wrap justify-center items-center mt-14 text-sm text-gray-500"> <div class="flex items-center mt-4 gap-2"> <a class="min-w-8 h-8 px-2.5 py-1.25 border flex items-center justify-center rounded-full bg-primary text-primary-foreground hover:text-primary-foreground" href="/pen-and-the-pad/"> 1 </a><a class="min-w-8 h-8 px-2.5 py-1.25 border flex items-center justify-center rounded-full bg-white hover:bg-primary/80 hover:text-primary-foreground text-secondary" href="/pen-and-the-pad/page/2/"> 2 </a><a class="min-w-8 h-8 px-2.5 py-1.25 border flex items-center justify-center rounded-full bg-white hover:bg-primary/80 hover:text-primary-foreground text-secondary" href="/pen-and-the-pad/page/3/"> 3 </a><div class="px-2">...</div><a class="min-w-8 h-8 px-2.5 py-1.25 border flex items-center justify-center rounded-full bg-white hover:bg-primary/80 hover:text-primary-foreground text-secondary" href="/pen-and-the-pad/page/96/"> 96 </a> <a class="w-8 h-8 rounded-full flex items-center justify-center bg-white hover:bg-primary/80 hover:text-primary-foreground text-secondary" href="/pen-and-the-pad/page/2/" aria-label="Next Page"> <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 w-4 h-4" aria-hidden="true"><path d="m9 18 6-6-6-6" /></svg> </a> </div> </div> </div> <div class="justify-center md:hidden flex"> </div> </div> </div> </div> <aside class="lg:min-w-[300px] lg:max-w-[300px] gap-10 flex flex-col content-sidebar"> <div class="space-y-8 h-full">
2761 <div class="sticky-ad-container h-full lg:h-[1200px]"> <div class="sticky top-50 flex flex-col gap-6"> <div class="flex justify-center right-rail data-empty:hidden" data-ad-slot="right-rail"> </div> <div class="flex justify-center right-rail data-empty:hidden" data-ad-slot="right-rail"> </div> </div> </div> <div class="sticky-ad-container lg:h-[1200px]"> <div class="sticky top-50"> <div class="flex justify-center right-rail data-empty:hidden" data-ad-slot="right-rail"> </div> </div> </div> </div> </aside> </div> <div class="flex items-center justify-center min-h-[90px]! md:min-h-[130px]! print:hidden inline-bottom data-empty:hidden" data-ad-slot="inline-bottom"> </div> </div> <div class="wrapper relative bg-primary text-primary-foreground pt-[44px] pb-[9px] z-999"> <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 & Lit </a><a class="text-primary-foreground hover:text-primary-foreground/80 text-[16px]/[20px] text-ellipsis line-clamp-1" href="/rhyme-rhythm/"> Rhyme & 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="s24" 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="{"name":"BackToTop","value":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( 2762 var(--sticky-ad-height, 0px) + var(--floating-bar-height, 0px) + 2763 16px 2764 );" 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>
2764<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>
2764 2765</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.