@troychaplin/parlour-ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +141 -145
  2. package/dist/_shared/client-Ban3HFV8.mjs +174 -0
  3. package/dist/_shared/client-D7AH6qxi.cjs +1 -0
  4. package/dist/_shared/shared-CihwD_kP.mjs +546 -0
  5. package/dist/_shared/shared-HWeZXz9t.cjs +1 -0
  6. package/dist/components/BrandIcon/BrandIcon.d.ts +9 -0
  7. package/dist/components/BrandIcon/BrandIcon.d.ts.map +1 -0
  8. package/dist/components/BrandIcon/brandIcons.d.ts +88 -0
  9. package/dist/components/BrandIcon/brandIcons.d.ts.map +1 -0
  10. package/dist/components/BrandIcon/index.cjs +1 -0
  11. package/dist/components/BrandIcon/index.d.ts +99 -0
  12. package/dist/components/BrandIcon/index.d.ts.map +1 -0
  13. package/dist/components/BrandIcon/index.mjs +2 -0
  14. package/dist/components/Card/Card.d.ts +5 -2
  15. package/dist/components/Card/Card.d.ts.map +1 -1
  16. package/dist/components/Card/index.cjs +1 -1
  17. package/dist/components/Card/index.d.ts +6 -2
  18. package/dist/components/Card/index.mjs +2 -21
  19. package/dist/components/Card/styles.css +123 -26
  20. package/dist/components/Card/styles.scss +123 -26
  21. package/dist/components/CodeBlock/index.cjs +1 -1
  22. package/dist/components/CodeBlock/index.d.ts +1 -0
  23. package/dist/components/CodeBlock/index.mjs +1 -1
  24. package/dist/components/Column/index.cjs +1 -1
  25. package/dist/components/Column/index.mjs +1 -1
  26. package/dist/components/Container/index.d.ts +1 -0
  27. package/dist/components/Container/styles.css +6 -0
  28. package/dist/components/Container/styles.scss +6 -0
  29. package/dist/components/FlexGroup/index.cjs +1 -1
  30. package/dist/components/FlexGroup/index.mjs +1 -1
  31. package/dist/components/GridGroup/index.cjs +1 -1
  32. package/dist/components/GridGroup/index.mjs +1 -1
  33. package/dist/components/Hero/index.cjs +1 -1
  34. package/dist/components/Hero/index.mjs +1 -1
  35. package/dist/components/HeroHeader/styles.css +2 -1
  36. package/dist/components/HeroHeader/styles.scss +2 -1
  37. package/dist/components/InfoBar/index.cjs +1 -1
  38. package/dist/components/InfoBar/index.mjs +1 -1
  39. package/dist/components/Main/Main.d.ts +1 -1
  40. package/dist/components/Main/Main.d.ts.map +1 -1
  41. package/dist/components/Main/index.cjs +1 -1
  42. package/dist/components/Main/index.d.ts +1 -1
  43. package/dist/components/Main/index.mjs +6 -4
  44. package/dist/components/Main/styles.css +4 -0
  45. package/dist/components/Main/styles.scss +4 -0
  46. package/dist/components/ProjectCard/ProjectCard.d.ts +14 -0
  47. package/dist/components/ProjectCard/ProjectCard.d.ts.map +1 -0
  48. package/dist/components/ProjectCard/index.cjs +1 -0
  49. package/dist/components/ProjectCard/index.d.ts +151 -0
  50. package/dist/components/ProjectCard/index.d.ts.map +1 -0
  51. package/dist/components/ProjectCard/index.mjs +51 -0
  52. package/dist/components/ProjectCard/styles.css +95 -0
  53. package/dist/components/ProjectCard/styles.scss +95 -0
  54. package/dist/components/SiteFooter/SiteFooter.d.ts +13 -0
  55. package/dist/components/SiteFooter/SiteFooter.d.ts.map +1 -0
  56. package/dist/components/SiteFooter/index.cjs +1 -0
  57. package/dist/components/SiteFooter/index.d.ts +15 -0
  58. package/dist/components/SiteFooter/index.d.ts.map +1 -0
  59. package/dist/components/SiteFooter/index.mjs +64 -0
  60. package/dist/components/SiteFooter/styles.css +86 -0
  61. package/dist/components/SiteFooter/styles.scss +86 -0
  62. package/dist/components/SiteHeader/index.cjs +1 -1
  63. package/dist/components/SiteHeader/index.mjs +1 -1
  64. package/dist/components/SkipLink/SkipLink.d.ts +8 -0
  65. package/dist/components/SkipLink/SkipLink.d.ts.map +1 -0
  66. package/dist/components/SkipLink/index.cjs +1 -0
  67. package/dist/components/SkipLink/index.d.ts +11 -0
  68. package/dist/components/SkipLink/index.d.ts.map +1 -0
  69. package/dist/components/SkipLink/index.mjs +14 -0
  70. package/dist/components/SkipLink/styles.css +29 -0
  71. package/dist/components/SkipLink/styles.scss +29 -0
  72. package/dist/components/_shared/BrandIcon-CRT5CX33.cjs +1 -0
  73. package/dist/components/_shared/BrandIcon-CcelVr9Y.mjs +111 -0
  74. package/dist/components/_shared/Card-CHHpCLeB.cjs +1 -0
  75. package/dist/components/_shared/Card-HwBpJDVj.mjs +34 -0
  76. package/dist/components/_shared/{FlexGroup-CgPbyEha.cjs → FlexGroup-D9sTJeh4.cjs} +1 -1
  77. package/dist/components/_shared/{FlexGroup-CnOrx2MF.mjs → FlexGroup-DorFgrVL.mjs} +1 -1
  78. package/dist/components/_shared/parlour-tokens-B-n0blwG.cjs +1 -0
  79. package/dist/components/_shared/{parlour-tokens-CHt4gBUd.mjs → parlour-tokens-DpDDQf0L.mjs} +2 -0
  80. package/dist/components/_shared/propClasses-BWhHB1BQ.cjs +1 -0
  81. package/dist/components/_shared/{propClasses-R9s_eOfA.mjs → propClasses-DXjiKI33.mjs} +2 -1
  82. package/dist/components/tokens/index.cjs +1 -1
  83. package/dist/components/tokens/index.mjs +1 -1
  84. package/dist/data/ProjectData.d.ts +3 -0
  85. package/dist/data/ProjectData.d.ts.map +1 -0
  86. package/dist/graphics/parlour-icon.svg +27 -0
  87. package/dist/index.cjs +1 -1
  88. package/dist/index.d.ts +5 -0
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.mjs +3 -3
  91. package/dist/style.css +1 -1
  92. package/dist/styles/c2b/parlour-tokens.d.ts +1 -1
  93. package/dist/styles/parlour-tokens.css +1 -0
  94. package/dist/styles/parlour-tokens.d.ts +1 -1
  95. package/dist/styles/parlour-tokens.js +2 -1
  96. package/dist/styles/parlour-tokens.scss +1 -0
  97. package/dist/utils/propClasses.d.ts +2 -0
  98. package/dist/utils/propClasses.d.ts.map +1 -1
  99. package/dist/wordpress/block-theme.css +1 -0
  100. package/dist/wordpress/hybrid-theme.css +1 -0
  101. package/package.json +1 -1
  102. package/dist/_shared/client-CLAcY4nN.cjs +0 -1
  103. package/dist/_shared/client-CsCPbj42.mjs +0 -93
  104. package/dist/_shared/shared-B07rlYN8.cjs +0 -1
  105. package/dist/_shared/shared-DZTw1JIu.mjs +0 -400
  106. package/dist/components/_shared/parlour-tokens-BT0frVnY.cjs +0 -1
  107. package/dist/components/_shared/propClasses-CLbmpfVJ.cjs +0 -1
package/dist/style.css CHANGED
@@ -39,5 +39,5 @@
39
39
  font-weight: 100 800;
40
40
  src: url('./fonts/jetbrains-mono/jetbrains-mono-variable-italic.woff2') format('woff2');
41
41
  }
42
- *,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;tab-size:4;font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;line-height:1.15}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentColor}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}:root{--parlour--color-black:#191919;--parlour--color-white:#fff;--parlour--color-accent-primary:#a34f3e;--parlour--color-accent-secondary:#ca2135;--parlour--color-neutral-50:#f9f7f3;--parlour--color-neutral-100:#f2f0ea;--parlour--color-neutral-200:#efeae2;--parlour--color-neutral-300:#e0d6c8;--parlour--color-neutral-400:#d8d5cf;--parlour--color-neutral-500:#8d7661;--parlour--color-neutral-600:#766051;--parlour--color-neutral-700:#5e4c42;--parlour--color-neutral-800:#51413a;--parlour--color-neutral-900:#473a35;--parlour--color-neutral-950:#271f1c;--parlour--color-info:#2571eb;--parlour--color-success:#16a34a;--parlour--color-warning:#fff154;--parlour--color-error:#dc2626;--parlour--color-linkedin:#0a66c2;--parlour--color-facebook:#1877f2;--parlour--color-bluesky:#1185fe;--parlour--color-twitter:#000;--parlour--color-instagram:#e4405f;--parlour--color-youtube:red;--parlour--color-tiktok:#010101;--parlour--gradient-white-to-neutral-50:linear-gradient(135deg,#fafafa 0%,#f9f7f3 90%);--parlour--spacing-3-x-small:.175rem;--parlour--spacing-2-x-small:.25rem;--parlour--spacing-x-small:.5rem;--parlour--spacing-small:clamp(.625rem, .625rem + ((1vw - .2rem) * .24), .75rem);--parlour--spacing-normal:clamp(.8125rem, .8125rem + ((1vw - .2rem) * .361), 1rem);--parlour--spacing-medium:clamp(.9375rem, .9375rem + ((1vw - .2rem) * .601), 1.25rem);--parlour--spacing-large:clamp(1.0625rem, 1.0625rem + ((1vw - .2rem) * .841), 1.5rem);--parlour--spacing-x-large:clamp(1.1875rem, 1.1875rem + ((1vw - .2rem) * 1.563), 2rem);--parlour--spacing-2-x-large:clamp(1.3125rem, 1.3125rem + ((1vw - .2rem) * 2.284), 2.5rem);--parlour--spacing-3-x-large:clamp(1.4375rem, 1.4375rem + ((1vw - .2rem) * 3.005), 3rem);--parlour--spacing-4-x-large:clamp(1.625rem, 1.625rem + ((1vw - .2rem) * 4.567), 4rem);--parlour--spacing-5-x-large:clamp(1.75rem, 1.75rem + ((1vw - .2rem) * 6.25), 5rem);--parlour--font-family-inter-tight:"Inter Tight", system-ui, "Segoe UI", roboto, sans-serif;--parlour--font-family-source-serif-4:"Source Serif 4", ui-serif, georgia, serif;--parlour--font-family-jetbrains-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--parlour--font-size-2-x-small:clamp(.6875rem, .6875rem + ((1vw - .2rem) * .12), .75rem);--parlour--font-size-x-small:clamp(.8125rem, .8125rem + ((1vw - .2rem) * .12), .875rem);--parlour--font-size-small:clamp(.875rem, .875rem + ((1vw - .2rem) * .24), 1rem);--parlour--font-size-medium:clamp(1rem, 1rem + ((1vw - .2rem) * .481), 1.25rem);--parlour--font-size-large:clamp(1rem, 1rem + ((1vw - .2rem) * .962), 1.5rem);--parlour--font-size-x-large:clamp(1.4375rem, 1.4375rem + ((1vw - .2rem) * 1.082), 2rem);--parlour--font-size-2-x-large:clamp(1.75rem, 1.75rem + ((1vw - .2rem) * 1.803), 2.6875rem);--parlour--font-size-3-x-large:clamp(2.0625rem, 2.0625rem + ((1vw - .2rem) * 2.885), 3.5625rem);--parlour--font-size-4-x-large:clamp(2.5rem, 2.5rem + ((1vw - .2rem) * 4.327), 4.75rem);--parlour--font-size-5-x-large:clamp(2.375rem, 2.375rem + ((1vw - .2rem) * 6.418), 5.7125rem);--parlour--font-size-hero:clamp(3.5625rem, 3.5625rem + ((1vw - .2rem) * 9.375), 8.4375rem);--parlour--font-size-heading-small:clamp(1rem, 1rem + ((1vw - .2rem) * .962), 1.5rem);--parlour--font-size-heading-medium:clamp(1.25rem, 1.25rem + ((1vw - .2rem) * .962), 1.75rem);--parlour--font-size-heading-large:clamp(1.5rem, 1.5rem + ((1vw - .2rem) * 1.442), 2.25rem);--parlour--font-size-heading-x-large:clamp(1.75rem, 1.75rem + ((1vw - .2rem) * 1.442), 2.5rem);--parlour--font-size-heading-primary:clamp(1.75rem, 1.75rem + ((1vw - .2rem) * 2.404), 3rem);--parlour--shadow-natural:6px 6px 9px #0003;--parlour--shadow-deep:12px 12px 50px #0006;--parlour--shadow-sharp:6px 6px 0px #0003;--parlour--shadow-outlined:6px 6px 0px -3px #fff, 6px 6px #000;--parlour--shadow-crisp:6px 6px 0px #000;--parlour--font-weight-thin:100;--parlour--font-weight-extra-light:200;--parlour--font-weight-light:300;--parlour--font-weight-normal:400;--parlour--font-weight-medium:500;--parlour--font-weight-semibold:600;--parlour--font-weight-bold:700;--parlour--font-weight-extra-bold:800;--parlour--font-weight-black:900;--parlour--line-height-tight:1.3;--parlour--line-height-normal:1.6;--parlour--line-height-loose:1.8;--parlour--radius-sm:2px;--parlour--radius-md:4px;--parlour--radius-lg:8px;--parlour--radius-xl:12px;--parlour--radius-full:9999px;--parlour--transition-fast:.15s ease;--parlour--transition-base:.25s ease;--parlour--z-100:100;--parlour--z-200:200;--parlour--z-500:500;--parlour--layout-content-size:768px;--parlour--layout-wide-size:1152px;--parlour--layout-small-size:600px;--parlour--layout-full-size:100vw;--parlour--viewport-mobile:600px;--parlour--viewport-tablet:768px;--parlour--root-padding-x:var(--parlour--spacing-x-large);--parlour--root-padding-y:0;--parlour--root-padding-top:var(--parlour--root-padding-y);--parlour--root-padding-right:var(--parlour--root-padding-x);--parlour--root-padding-bottom:var(--parlour--root-padding-y);--parlour--root-padding-left:var(--parlour--root-padding-x);--parlour--root-block-gap:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:focus-visible{outline:2px solid var(--parlour--color-accent-primary);outline-offset:2px}::selection{background-color:var(--parlour--color-accent-primary);color:var(--parlour--color-white)}.alignsmall{max-width:var(--parlour--layout-small-size)!important}.aligncontent{max-width:var(--parlour--layout-content-size)}.alignwide{max-width:var(--parlour--layout-wide-size)}.alignfull{max-width:var(--parlour--layout-full-size)}.parlour-main>div>.parlour-layout+.parlour-layout,.parlour-main>div>.parlour-layout+:not(.parlour-layout),.parlour-main>div>:not(.parlour-layout)+.parlour-layout{margin-top:var(--parlour--spacing-4-x-large)}h1,h2,h3,h4,h5,h6{margin-bottom:0!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{font-family:var(--parlour--font-family-source-serif-4);font-size:var(--parlour--font-size-medium);font-weight:300;line-height:var(--parlour--line-height-normal);color:var(--parlour--color-black);background-color:var(--parlour--color-neutral-50)}:where(h1,h2,h3,h4,h5,h6){font-family:var(--parlour--font-family-inter-tight);color:var(--parlour--color-neutral-800);line-height:1.1}:where(h1){font-size:var(--parlour--font-size-3-x-large);font-style:normal;font-weight:600}:where(h2){font-size:var(--parlour--font-size-2-x-large);font-style:normal;font-weight:600}:where(h3){font-size:var(--parlour--font-size-x-large);font-style:normal;font-weight:600}:where(h4){font-size:var(--parlour--font-size-large);font-style:normal;font-weight:600}:where(h5){font-size:var(--parlour--font-size-medium);font-style:normal;font-weight:600}:where(h6){font-size:var(--parlour--font-size-medium);font-style:italic;font-weight:600}:where(figcaption){font-size:var(--parlour--font-size-small);font-style:italic;font-weight:var(--parlour--font-weight-light);color:var(--parlour--color-warning)}:where(button){color:var(--parlour--color-white);background-color:var(--parlour--color-black)}:where(a){color:var(--parlour--color-accent-primary)}:where(a:hover){color:var(--parlour--color-error)}:where(.is-layout-constrained)>*{margin-block:0}:where(.is-layout-constrained)>*+*{margin-block-start:var(--parlour--root-block-gap)}:where(.is-layout-flex),:where(.is-layout-grid){gap:var(--parlour--root-block-gap)}:where(.entry-content)>*+*{margin-block-start:var(--parlour--spacing-normal)}.is-layout-constrained>:where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:var(--parlour--layout-content-size);margin-left:auto!important;margin-right:auto!important}.is-layout-constrained>.alignwide{max-width:var(--parlour--layout-wide-size);margin-left:auto!important;margin-right:auto!important}.has-global-padding{padding-right:var(--parlour--root-padding-right);padding-left:var(--parlour--root-padding-left)}.has-global-padding>.alignfull{max-width:none;margin-right:calc(var(--parlour--root-padding-right) * -1);margin-left:calc(var(--parlour--root-padding-left) * -1)}.has-global-padding>.alignfull>.has-global-padding{padding-right:var(--parlour--root-padding-right);padding-left:var(--parlour--root-padding-left)}.is-layout-constrained>*+h1{margin-block-start:var(--parlour--spacing-large)}.is-layout-constrained>*+h2,.is-layout-constrained>*+h3,.is-layout-constrained>*+h4,.is-layout-constrained>*+h5,.is-layout-constrained>*+h6{margin-block-start:var(--parlour--spacing-medium)}.is-layout-constrained>:is(h1,h2,h3,h4,h5,h6)+*{margin-block-start:var(--parlour--spacing-small)}.parlour-aside>.sticky{position:sticky}.parlour-main>*+*{margin-block-start:var(--parlour--spacing-medium);margin-block-end:0}.parlour-main a{font-weight:700;text-decoration:none;transition:color .25s}.parlour-main a:hover{text-decoration:underline;transition:color .25s}.parlour-main--padding{padding-block:var(--parlour--spacing-4-x-large)}.parlour-flex-group{margin-left:auto;margin-right:auto;display:flex}.parlour-flex-group--row{flex-direction:row}.parlour-flex-group--column{flex-direction:column}.parlour-flex-group--wrap{flex-wrap:wrap}.parlour-flex-group--nowrap{flex-wrap:nowrap}.parlour-flex-group--justify-start{justify-content:flex-start}.parlour-flex-group--justify-center{justify-content:center}.parlour-flex-group--justify-end{justify-content:flex-end}.parlour-flex-group--justify-space-between{justify-content:space-between}.parlour-flex-group--align-start{align-items:flex-start}.parlour-flex-group--align-center{align-items:center}.parlour-flex-group--align-end{align-items:flex-end}.parlour-flex-group--align-stretch{align-items:stretch}.parlour-flex-group--gap-none{gap:0}.parlour-flex-group--padding-none{padding:0}.parlour-flex-group.parlour-flex-group--margin-none{margin-block:0}.parlour-flex-group--gap--3-x-small{gap:var(--parlour--spacing--3-x-small)}.parlour-flex-group--padding--3-x-small{padding:var(--parlour--spacing--3-x-small)}.parlour-flex-group.parlour-flex-group--margin--3-x-small{margin-block:var(--parlour--spacing--3-x-small)}.parlour-flex-group--gap--2-x-small{gap:var(--parlour--spacing--2-x-small)}.parlour-flex-group--padding--2-x-small{padding:var(--parlour--spacing--2-x-small)}.parlour-flex-group.parlour-flex-group--margin--2-x-small{margin-block:var(--parlour--spacing--2-x-small)}.parlour-flex-group--gap--x-small{gap:var(--parlour--spacing--x-small)}.parlour-flex-group--padding--x-small{padding:var(--parlour--spacing--x-small)}.parlour-flex-group.parlour-flex-group--margin--x-small{margin-block:var(--parlour--spacing--x-small)}.parlour-flex-group--gap--small{gap:var(--parlour--spacing--small)}.parlour-flex-group--padding--small{padding:var(--parlour--spacing--small)}.parlour-flex-group.parlour-flex-group--margin--small{margin-block:var(--parlour--spacing--small)}.parlour-flex-group--gap--normal{gap:var(--parlour--spacing--normal)}.parlour-flex-group--padding--normal{padding:var(--parlour--spacing--normal)}.parlour-flex-group.parlour-flex-group--margin--normal{margin-block:var(--parlour--spacing--normal)}.parlour-flex-group--gap--medium{gap:var(--parlour--spacing--medium)}.parlour-flex-group--padding--medium{padding:var(--parlour--spacing--medium)}.parlour-flex-group.parlour-flex-group--margin--medium{margin-block:var(--parlour--spacing--medium)}.parlour-flex-group--gap--large{gap:var(--parlour--spacing--large)}.parlour-flex-group--padding--large{padding:var(--parlour--spacing--large)}.parlour-flex-group.parlour-flex-group--margin--large{margin-block:var(--parlour--spacing--large)}.parlour-flex-group--gap--x-large{gap:var(--parlour--spacing--x-large)}.parlour-flex-group--padding--x-large{padding:var(--parlour--spacing--x-large)}.parlour-flex-group.parlour-flex-group--margin--x-large{margin-block:var(--parlour--spacing--x-large)}.parlour-flex-group--gap--2-x-large{gap:var(--parlour--spacing--2-x-large)}.parlour-flex-group--padding--2-x-large{padding:var(--parlour--spacing--2-x-large)}.parlour-flex-group.parlour-flex-group--margin--2-x-large{margin-block:var(--parlour--spacing--2-x-large)}.parlour-flex-group--gap--3-x-large{gap:var(--parlour--spacing--3-x-large)}.parlour-flex-group--padding--3-x-large{padding:var(--parlour--spacing--3-x-large)}.parlour-flex-group.parlour-flex-group--margin--3-x-large{margin-block:var(--parlour--spacing--3-x-large)}.parlour-flex-group--gap--4-x-large{gap:var(--parlour--spacing--4-x-large)}.parlour-flex-group--padding--4-x-large{padding:var(--parlour--spacing--4-x-large)}.parlour-flex-group.parlour-flex-group--margin--4-x-large{margin-block:var(--parlour--spacing--4-x-large)}.parlour-flex-group--gap--5-x-large{gap:var(--parlour--spacing--5-x-large)}.parlour-flex-group--padding--5-x-large{padding:var(--parlour--spacing--5-x-large)}.parlour-flex-group.parlour-flex-group--margin--5-x-large{margin-block:var(--parlour--spacing--5-x-large)}.parlour-buttongroup{gap:var(--parlour--spacing-2-x-small);flex-wrap:wrap;display:flex}@media (width>768px){.parlour-buttongroup{flex:1}}.parlour-buttongroup--justify-start{justify-content:flex-start}.parlour-buttongroup--justify-center{justify-content:center}.parlour-buttongroup--justify-end{justify-content:flex-end}.parlour-button,a.parlour-button{padding:var(--parlour--spacing-small) var(--parlour--spacing-medium);font-family:var(--parlour--font-family-inter-tight);font-size:var(--parlour--font-size-medium);font-weight:var(--parlour--font-weight-light);line-height:var(--parlour--line-height-tight);border-radius:var(--parlour--radius-sm);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}.parlour-button:hover,.parlour-button.parlour-button--outline:hover,a.parlour-button:hover,a.parlour-button.parlour-button--outline:hover{color:var(--parlour--color-white);background-color:var(--parlour--color-accent-secondary);border-color:var(--parlour--color-accent-secondary);text-decoration:none}.parlour-button--light{color:var(--parlour--color-neutral-900);background-color:var(--parlour--color-neutral-100);border-color:var(--parlour--color-neutral-100)}.parlour-button--light.parlour-button--outline{color:var(--parlour--color-neutral-900);background-color:var(--parlour--color-neutral-100)}.parlour-button--link{color:var(--parlour--color-white);background-color:var(--parlour--color-accent-secondary);border-color:var(--parlour--color-accent-secondary)}.parlour-button--link:hover{background-color:var(--parlour--color-neutral-800);border-color:var(--parlour--color-neutral-800)}.parlour-button--link.parlour-button--outline{color:var(--parlour--color-accent-secondary);background-color:var(--parlour--color-white)}.parlour-button--link.parlour-button--outline:hover{background-color:var(--parlour--color-neutral-800);border-color:var(--parlour--color-neutral-800)}.parlour-button--medium{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-800);border-color:var(--parlour--color-neutral-800)}.parlour-button--medium.parlour-button--outline{color:var(--parlour--color-neutral-800);background-color:var(--parlour--color-white)}.parlour-button--dark{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-900);border-color:var(--parlour--color-neutral-900)}.parlour-button--dark.parlour-button--outline{color:var(--parlour--color-neutral-900);background-color:var(--parlour--color-white)}.parlour-button--white{color:var(--parlour--color-neutral-800);background-color:var(--parlour--color-white);border-color:var(--parlour--color-white)}.parlour-button--white.parlour-button--outline{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-800)}.parlour-button--disabled{color:var(--parlour--color-neutral-800);background-color:var(--parlour--color-neutral-300);border-color:var(--parlour--color-neutral-300);cursor:default}.parlour-button--small,a.parlour-button--small{padding:var(--parlour--spacing-x-small) var(--parlour--spacing-small);font-size:var(--parlour--font-size-small)}.parlour-button--full{width:100%}.parlour-button--radius-sm{border-radius:var(--parlour--radius-sm)}.parlour-button--radius-md{border-radius:var(--parlour--radius-md)}.parlour-button--radius-lg{border-radius:var(--parlour--radius-lg)}.parlour-button--radius-full{border-radius:var(--parlour--radius-full)}.parlour-button--radius-none{border-radius:0}.parlour-site-header{padding-block:var(--parlour--spacing-medium);padding-inline:var(--parlour--root-padding-x);background-color:var(--parlour--color-white);border-bottom:1px solid var(--parlour--color-neutral-400)}.parlour-site-header__branding p{font-family:var(--parlour--font-family-source-serif-4);font-size:var(--parlour--font-size-large);margin:0;padding:0}.parlour-site-header__branding p span{color:var(--parlour--color-accent-secondary);font-style:italic}.parlour-site-header__branding p a{font-weight:var(--parlour--font-weight-normal);color:var(--parlour--color-neutral-900);text-decoration:none}.parlour-site-header__branding p a:hover,.parlour-site-header__branding p a:focus-visible{color:var(--parlour--color-accent-secondary)}.parlour-site-header__branding p a:hover span.parlour-site-header__title-accent,.parlour-site-header__branding p a:focus-visible span.parlour-site-header__title-accent{color:var(--parlour--color-neutral-900)}.parlour-site-header__nav ul{gap:var(--parlour--spacing-medium);margin:0;padding:0;list-style:none;display:flex}.parlour-site-header__nav ul li{font-family:var(--parlour--font-family-inter-tight);font-size:var(--parlour--font-size-small);margin:0;padding:0}.parlour-site-header__nav ul li a{font-weight:var(--parlour--font-weight-normal);color:var(--parlour--color-neutral-950);text-decoration:none}.parlour-infobar{width:100%;padding-block:var(--parlour--spacing-small);padding-inline:var(--parlour--root-padding-x);background-color:var(--parlour--color-neutral-100)}.parlour-infobar p{font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-2-x-small);margin:0}.parlour-column{gap:var(--parlour--spacing-large);margin-left:auto;margin-right:auto;display:grid}.parlour-column--one{grid-template-columns:repeat(1,minmax(0,1fr))}.parlour-column--two{grid-template-columns:1fr}@media (width>600px){.parlour-column--two{grid-template-columns:repeat(2,minmax(0,1fr))}}.parlour-column--three{grid-template-columns:1fr}@media (width>768px){.parlour-column--three{grid-template-columns:repeat(3,minmax(0,1fr))}}.parlour-column--four{grid-template-columns:1fr}@media (width>600px){.parlour-column--four{grid-template-columns:repeat(2,minmax(0,1fr))}}.parlour-column--one-third{grid-template-columns:1fr}@media (width>768px){.parlour-column--one-third{grid-template-columns:33% auto}}.parlour-column--two-thirds{grid-template-columns:1fr}@media (width>768px){.parlour-column--two-thirds{grid-template-columns:66% auto}}.parlour-column>.parlour-column__content :first-child{margin-top:0}.parlour-column>.parlour-column__content :last-child{margin-bottom:0}@media (width>600px){.parlour-column--two>.is-first,.parlour-column--four>.is-first{order:-1}}@media (width>768px){.parlour-column--three>.is-first,.parlour-column--one-third>.is-first,.parlour-column--two-thirds>.is-first{order:-1}}.parlour-grid-group{grid-template-columns:minmax(0,1fr);margin-left:auto;margin-right:auto;display:grid}ul.parlour-grid-group,ol.parlour-grid-group{padding-left:0;list-style:none}@media (width>600px){.parlour-grid-group--columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>768px){.parlour-grid-group--columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.parlour-grid-group--align-start{align-items:start}.parlour-grid-group--align-center{align-items:center}.parlour-grid-group--align-end{align-items:end}.parlour-grid-group--align-stretch{align-items:stretch}.parlour-grid-group--gap-none{gap:0}.parlour-grid-group--gap-3-x-small{gap:var(--parlour--spacing-3-x-small)}.parlour-grid-group--gap-2-x-small{gap:var(--parlour--spacing-2-x-small)}.parlour-grid-group--gap-x-small{gap:var(--parlour--spacing-x-small)}.parlour-grid-group--gap-small{gap:var(--parlour--spacing-small)}.parlour-grid-group--gap-normal{gap:var(--parlour--spacing-normal)}.parlour-grid-group--gap-medium{gap:var(--parlour--spacing-medium)}.parlour-grid-group--gap-large{gap:var(--parlour--spacing-large)}.parlour-grid-group--gap-x-large{gap:var(--parlour--spacing-x-large)}.parlour-grid-group--gap-2-x-large{gap:var(--parlour--spacing-2-x-large)}.parlour-grid-group--gap-3-x-large{gap:var(--parlour--spacing-3-x-large)}.parlour-grid-group--gap-4-x-large{gap:var(--parlour--spacing-4-x-large)}.parlour-grid-group--gap-5-x-large{gap:var(--parlour--spacing-5-x-large)}.parlour-grid-group--row-gap-none{row-gap:0}.parlour-grid-group--row-gap-3-x-small{row-gap:var(--parlour--spacing-3-x-small)}.parlour-grid-group--row-gap-2-x-small{row-gap:var(--parlour--spacing-2-x-small)}.parlour-grid-group--row-gap-x-small{row-gap:var(--parlour--spacing-x-small)}.parlour-grid-group--row-gap-small{row-gap:var(--parlour--spacing-small)}.parlour-grid-group--row-gap-normal{row-gap:var(--parlour--spacing-normal)}.parlour-grid-group--row-gap-medium{row-gap:var(--parlour--spacing-medium)}.parlour-grid-group--row-gap-large{row-gap:var(--parlour--spacing-large)}.parlour-grid-group--row-gap-x-large{row-gap:var(--parlour--spacing-x-large)}.parlour-grid-group--row-gap-2-x-large{row-gap:var(--parlour--spacing-2-x-large)}.parlour-grid-group--row-gap-3-x-large{row-gap:var(--parlour--spacing-3-x-large)}.parlour-grid-group--row-gap-4-x-large{row-gap:var(--parlour--spacing-4-x-large)}.parlour-grid-group--row-gap-5-x-large{row-gap:var(--parlour--spacing-5-x-large)}.parlour-container>*{margin-left:auto;margin-right:auto}.parlour-container>*+*{margin-block-start:var(--parlour--spacing-medium);margin-block-end:0}.parlour-container>.has-global-padding,.has-global-padding>.parlour-container.alignfull>.has-global-padding{padding-left:0;padding-right:0}.parlour-container>.has-global-padding>:first-child,.has-global-padding>.parlour-container.alignfull>.has-global-padding>:first-child{margin-top:0}.parlour-container>.has-global-padding>:last-child,.has-global-padding>.parlour-container.alignfull>.has-global-padding>:last-child{margin-bottom:0}.parlour-container.aligncontent,.parlour-container.alignwide,.parlour-container.alignfull{padding-right:var(--parlour--spacing-3-x-large);padding-left:var(--parlour--spacing-3-x-large)}@media (width>768px){.parlour-container.aligncontent,.parlour-container.alignwide,.parlour-container.alignfull{padding-right:var(--parlour--spacing-4-x-large);padding-left:var(--parlour--spacing-4-x-large)}}.parlour-main>div>.parlour-container--no-gap+.parlour-container--no-gap{margin-top:var(--parlour--spacing-2-x-large)}.parlour-main>div>.parlour-container--no-gap.alignfull+.parlour-container--no-gap.alignfull{margin-top:0}.parlour-container--light,.parlour-container--medium,.parlour-container--dark,.parlour-container--white{padding-block:var(--parlour--spacing-5-x-large)}.parlour-container--light{background-color:var(--parlour--color-neutral-200)}.parlour-container--medium{background-color:var(--parlour--color-neutral-900);color:var(--parlour--color-white)}.parlour-container--medium h2,.parlour-container--medium h3,.parlour-container--medium h4,.parlour-container--medium h5,.parlour-container--medium h6{color:var(--parlour--color-white)}.parlour-container--dark{background-color:var(--parlour--color-neutral-950);color:var(--parlour--color-white)}.parlour-container--dark h2,.parlour-container--dark h3,.parlour-container--dark h4,.parlour-container--dark h5,.parlour-container--dark h6{color:var(--parlour--color-white)}.parlour-container--white{background-color:var(--parlour--color-white)}.parlour-container--light,.parlour-container--white{border:1px solid var(--parlour--color-neutral-300)}.parlour-container--light.alignfull,.parlour-container--white.alignfull{border-inline:none}.parlour-container--light.alignfull+.parlour-container--has-border,.parlour-container--white.alignfull+.parlour-container--has-border{border-top:none}.parlour-container--full{width:100%}.parlour-container--radius-sm:not(.alignfull){border-radius:var(--parlour--radius-sm)}.parlour-container--radius-md:not(.alignfull){border-radius:var(--parlour--radius-md)}.parlour-container--radius-lg:not(.alignfull){border-radius:var(--parlour--radius-lg)}.parlour-container--radius-xl:not(.alignfull){border-radius:var(--parlour--radius-xl)}.parlour-container--radius-full:not(.alignfull){border-radius:var(--parlour--radius-full)}.parlour-container--radius-none:not(.alignfull){border-radius:0}.parlour-card{min-width:0}.parlour-card>:first-child{margin-top:0}.parlour-card>:last-child{margin-bottom:0}.parlour-card.parlour-card :is(h1,h2,h3,h4,h5,h6){color:inherit}li.parlour-card{list-style:none}.parlour-card--bg-white{background-color:var(--parlour--color-white);color:var(--parlour--color-black)}.parlour-card--bg-light{background-color:var(--parlour--color-neutral-50);color:var(--parlour--color-black)}.parlour-card--bg-medium{background-color:var(--parlour--color-neutral-900);color:var(--parlour--color-white)}.parlour-card--bg-dark{background-color:var(--parlour--color-neutral-950);color:var(--parlour--color-white)}.parlour-card--border{border-style:solid;border-width:1px}.parlour-card--border-white{border-color:var(--parlour--color-white)}.parlour-card--border-light{border-color:var(--parlour--color-neutral-300)}.parlour-card--border-medium{border-color:var(--parlour--color-neutral-500)}.parlour-card--border-dark{border-color:var(--parlour--color-neutral-900)}.parlour-card--radius-none{border-radius:0}.parlour-card--radius-sm{border-radius:var(--parlour--radius-sm)}.parlour-card--radius-md{border-radius:var(--parlour--radius-md)}.parlour-card--radius-lg{border-radius:var(--parlour--radius-lg)}.parlour-card--radius-xl{border-radius:var(--parlour--radius-xl)}.parlour-card--radius-full{border-radius:var(--parlour--radius-full)}.parlour-card--padding-none{padding:0}.parlour-card--padding-3-x-small{padding:var(--parlour--spacing-3-x-small)}.parlour-card--padding-2-x-small{padding:var(--parlour--spacing-2-x-small)}.parlour-card--padding-x-small{padding:var(--parlour--spacing-x-small)}.parlour-card--padding-small{padding:var(--parlour--spacing-small)}.parlour-card--padding-normal{padding:var(--parlour--spacing-normal)}.parlour-card--padding-medium{padding:var(--parlour--spacing-medium)}.parlour-card--padding-large{padding:var(--parlour--spacing-large)}.parlour-card--padding-x-large{padding:var(--parlour--spacing-x-large)}.parlour-card--padding-2-x-large{padding:var(--parlour--spacing-2-x-large)}.parlour-card--padding-3-x-large{padding:var(--parlour--spacing-3-x-large)}.parlour-card--padding-4-x-large{padding:var(--parlour--spacing-4-x-large)}.parlour-card--padding-5-x-large{padding:var(--parlour--spacing-5-x-large)}.parlour-code-block{padding-inline:var(--parlour--spacing-x-large);padding-block:var(--parlour--spacing-x-large);font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-small);line-height:var(--parlour--line-height-normal);color:var(--parlour--color-neutral-950);background-color:var(--parlour--color-neutral-200);border-color:var(--parlour--color-neutral-300);overflow-x:auto}.parlour-code-block code{font-family:inherit;display:block}.parlour-code-block--light{background-color:var(--parlour--color-neutral-200)}.parlour-code-block--medium{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-900);border-color:var(--parlour--color-neutral-900)}.parlour-code-block--dark{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-950);border-color:var(--parlour--color-neutral-950)}.parlour-code-block--white{background-color:var(--parlour--color-white)}.parlour-code-block--has-border{border-style:solid;border-width:1px}.parlour-code-block--radius-sm{border-radius:var(--parlour--radius-sm)}.parlour-code-block--radius-md{border-radius:var(--parlour--radius-md)}.parlour-code-block--radius-lg{border-radius:var(--parlour--radius-lg)}.parlour-code-block--radius-xl{border-radius:var(--parlour--radius-xl)}.parlour-code-block--radius-full{border-radius:var(--parlour--radius-full)}.parlour-code-block--radius-none{border-radius:0}.parlour-figure{max-width:100%;margin:0}.parlour-figure img{width:100%;height:auto;display:block}.parlour-figure--xs{width:320px}.parlour-figure--sm{width:440px}.parlour-figure--md{width:512px}.parlour-figure--lg{width:48rem}.parlour-figure--full{width:100%}@media (width<=768px){.parlour-figure--xs,.parlour-figure--sm,.parlour-figure--md,.parlour-figure--lg{width:100%}}.parlour-figure--left{margin:var(--parlour--spacing-medium) 0}@media (width>768px){.parlour-figure--left{float:left;clear:left;margin-top:0;margin-right:var(--parlour--spacing-large)}}.parlour-figure--right{margin:var(--parlour--spacing-medium) 0}@media (width>768px){.parlour-figure--right{float:right;clear:right;margin-top:0;margin-left:var(--parlour--spacing-large)}}.parlour-figure--center{margin:var(--parlour--spacing-medium) 0}.parlour-figure__inner{border-radius:var(--parlour--radius-md);overflow:hidden}.parlour-figure__caption{background-color:var(--parlour--color-neutral-100);padding:var(--parlour--spacing-small) var(--parlour--spacing-medium);font-size:var(--parlour--font-size-medium);color:var(--parlour--color-neutral-800);font-style:italic}.parlour-hero{padding-bottom:var(--parlour--spacing-small)}.parlour-hero .parlour-flex-group{gap:var(--parlour--spacing-3-x-large)}.parlour-hero__content{flex:1}.parlour-hero__code{min-width:0}@media (width<=768px){.parlour-hero__code{display:none}}@media (width>768px){.parlour-hero__code{flex:0 0 40%}}.parlour-hero__code>*{margin-block:0}.parlour-hero-header__title{font-size:var(--parlour--font-size-4-x-large);font-weight:var(--parlour--font-weight-normal);color:var(--parlour--color-neutral-900);letter-spacing:-2px;margin-top:0;line-height:1.1}.parlour-hero-header__title-accent{font-family:var(--parlour--font-family-source-serif-4);font-weight:var(--parlour--font-weight-extra-light);font-style:italic;display:block}.parlour-hero-header__prefix{font-size:var(--parlour--font-size-medium);font-weight:var(--parlour--font-weight-light);padding-bottom:var(--parlour--spacing-2-x-large);font-style:italic}.parlour-hero-header ul.parlour-hero-header__stats{gap:var(--parlour--spacing-2-x-large);font-size:var(--parlour--font-size-small);font-weight:var(--parlour--font-weight-light);margin-top:var(--parlour--spacing-x-large);padding-top:var(--parlour--spacing-medium);border-top:1px solid var(--parlour--color-neutral-300);padding-left:0;list-style:none;display:flex}.parlour-container--dark .parlour-hero-header__title,.parlour-container--medium .parlour-hero-header__title{color:var(--parlour--color-white)}.parlour-section-header{padding-bottom:var(--parlour--spacing-large);margin-bottom:var(--parlour--spacing-2-x-large);border-bottom:1px solid}.parlour-section-header__prefix{margin:0 0 var(--parlour--spacing-medium);font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-2-x-small);font-weight:var(--parlour--font-weight-normal);letter-spacing:.1em;text-transform:uppercase;color:var(--parlour--color-neutral-600)}.parlour-section-header__title{font-size:var(--parlour--font-size-2-x-large);font-weight:var(--parlour--font-weight-normal);letter-spacing:-1px;color:var(--parlour--color-neutral-950);margin:0;line-height:1.1}.parlour-container--dark .parlour-section-header__prefix,.parlour-container--medium .parlour-section-header__prefix{color:var(--parlour--color-neutral-300)}
42
+ *,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;tab-size:4;font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;line-height:1.15}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentColor}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}:root{--parlour--color-black:#191919;--parlour--color-white:#fff;--parlour--color-accent-primary:#a34f3e;--parlour--color-accent-secondary:#ca2135;--parlour--color-neutral-50:#f9f7f3;--parlour--color-neutral-100:#f2f0ea;--parlour--color-neutral-200:#efeae2;--parlour--color-neutral-300:#e0d6c8;--parlour--color-neutral-400:#d8d5cf;--parlour--color-neutral-500:#8d7661;--parlour--color-neutral-600:#766051;--parlour--color-neutral-700:#5e4c42;--parlour--color-neutral-800:#51413a;--parlour--color-neutral-900:#473a35;--parlour--color-neutral-950:#271f1c;--parlour--color-info:#2571eb;--parlour--color-success:#16a34a;--parlour--color-warning:#fff154;--parlour--color-error:#dc2626;--parlour--color-github:#181717;--parlour--color-linkedin:#0a66c2;--parlour--color-facebook:#1877f2;--parlour--color-bluesky:#1185fe;--parlour--color-twitter:#000;--parlour--color-instagram:#e4405f;--parlour--color-youtube:red;--parlour--color-tiktok:#010101;--parlour--gradient-white-to-neutral-50:linear-gradient(135deg,#fafafa 0%,#f9f7f3 90%);--parlour--spacing-3-x-small:.175rem;--parlour--spacing-2-x-small:.25rem;--parlour--spacing-x-small:.5rem;--parlour--spacing-small:clamp(.625rem, .625rem + ((1vw - .2rem) * .24), .75rem);--parlour--spacing-normal:clamp(.8125rem, .8125rem + ((1vw - .2rem) * .361), 1rem);--parlour--spacing-medium:clamp(.9375rem, .9375rem + ((1vw - .2rem) * .601), 1.25rem);--parlour--spacing-large:clamp(1.0625rem, 1.0625rem + ((1vw - .2rem) * .841), 1.5rem);--parlour--spacing-x-large:clamp(1.1875rem, 1.1875rem + ((1vw - .2rem) * 1.563), 2rem);--parlour--spacing-2-x-large:clamp(1.3125rem, 1.3125rem + ((1vw - .2rem) * 2.284), 2.5rem);--parlour--spacing-3-x-large:clamp(1.4375rem, 1.4375rem + ((1vw - .2rem) * 3.005), 3rem);--parlour--spacing-4-x-large:clamp(1.625rem, 1.625rem + ((1vw - .2rem) * 4.567), 4rem);--parlour--spacing-5-x-large:clamp(1.75rem, 1.75rem + ((1vw - .2rem) * 6.25), 5rem);--parlour--font-family-inter-tight:"Inter Tight", system-ui, "Segoe UI", roboto, sans-serif;--parlour--font-family-source-serif-4:"Source Serif 4", ui-serif, georgia, serif;--parlour--font-family-jetbrains-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--parlour--font-size-2-x-small:clamp(.6875rem, .6875rem + ((1vw - .2rem) * .12), .75rem);--parlour--font-size-x-small:clamp(.8125rem, .8125rem + ((1vw - .2rem) * .12), .875rem);--parlour--font-size-small:clamp(.875rem, .875rem + ((1vw - .2rem) * .24), 1rem);--parlour--font-size-medium:clamp(1rem, 1rem + ((1vw - .2rem) * .481), 1.25rem);--parlour--font-size-large:clamp(1rem, 1rem + ((1vw - .2rem) * .962), 1.5rem);--parlour--font-size-x-large:clamp(1.4375rem, 1.4375rem + ((1vw - .2rem) * 1.082), 2rem);--parlour--font-size-2-x-large:clamp(1.75rem, 1.75rem + ((1vw - .2rem) * 1.803), 2.6875rem);--parlour--font-size-3-x-large:clamp(2.0625rem, 2.0625rem + ((1vw - .2rem) * 2.885), 3.5625rem);--parlour--font-size-4-x-large:clamp(2.5rem, 2.5rem + ((1vw - .2rem) * 4.327), 4.75rem);--parlour--font-size-5-x-large:clamp(2.375rem, 2.375rem + ((1vw - .2rem) * 6.418), 5.7125rem);--parlour--font-size-hero:clamp(3.5625rem, 3.5625rem + ((1vw - .2rem) * 9.375), 8.4375rem);--parlour--font-size-heading-small:clamp(1rem, 1rem + ((1vw - .2rem) * .962), 1.5rem);--parlour--font-size-heading-medium:clamp(1.25rem, 1.25rem + ((1vw - .2rem) * .962), 1.75rem);--parlour--font-size-heading-large:clamp(1.5rem, 1.5rem + ((1vw - .2rem) * 1.442), 2.25rem);--parlour--font-size-heading-x-large:clamp(1.75rem, 1.75rem + ((1vw - .2rem) * 1.442), 2.5rem);--parlour--font-size-heading-primary:clamp(1.75rem, 1.75rem + ((1vw - .2rem) * 2.404), 3rem);--parlour--shadow-natural:6px 6px 9px #0003;--parlour--shadow-deep:12px 12px 50px #0006;--parlour--shadow-sharp:6px 6px 0px #0003;--parlour--shadow-outlined:6px 6px 0px -3px #fff, 6px 6px #000;--parlour--shadow-crisp:6px 6px 0px #000;--parlour--font-weight-thin:100;--parlour--font-weight-extra-light:200;--parlour--font-weight-light:300;--parlour--font-weight-normal:400;--parlour--font-weight-medium:500;--parlour--font-weight-semibold:600;--parlour--font-weight-bold:700;--parlour--font-weight-extra-bold:800;--parlour--font-weight-black:900;--parlour--line-height-tight:1.3;--parlour--line-height-normal:1.6;--parlour--line-height-loose:1.8;--parlour--radius-sm:2px;--parlour--radius-md:4px;--parlour--radius-lg:8px;--parlour--radius-xl:12px;--parlour--radius-full:9999px;--parlour--transition-fast:.15s ease;--parlour--transition-base:.25s ease;--parlour--z-100:100;--parlour--z-200:200;--parlour--z-500:500;--parlour--layout-content-size:768px;--parlour--layout-wide-size:1152px;--parlour--layout-small-size:600px;--parlour--layout-full-size:100vw;--parlour--viewport-mobile:600px;--parlour--viewport-tablet:768px;--parlour--root-padding-x:var(--parlour--spacing-x-large);--parlour--root-padding-y:0;--parlour--root-padding-top:var(--parlour--root-padding-y);--parlour--root-padding-right:var(--parlour--root-padding-x);--parlour--root-padding-bottom:var(--parlour--root-padding-y);--parlour--root-padding-left:var(--parlour--root-padding-x);--parlour--root-block-gap:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:focus-visible{outline:2px solid var(--parlour--color-accent-primary);outline-offset:2px}::selection{background-color:var(--parlour--color-accent-primary);color:var(--parlour--color-white)}.alignsmall{max-width:var(--parlour--layout-small-size)!important}.aligncontent{max-width:var(--parlour--layout-content-size)}.alignwide{max-width:var(--parlour--layout-wide-size)}.alignfull{max-width:var(--parlour--layout-full-size)}.parlour-main>div>.parlour-layout+.parlour-layout,.parlour-main>div>.parlour-layout+:not(.parlour-layout),.parlour-main>div>:not(.parlour-layout)+.parlour-layout{margin-top:var(--parlour--spacing-4-x-large)}h1,h2,h3,h4,h5,h6{margin-bottom:0!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{font-family:var(--parlour--font-family-source-serif-4);font-size:var(--parlour--font-size-medium);font-weight:300;line-height:var(--parlour--line-height-normal);color:var(--parlour--color-black);background-color:var(--parlour--color-neutral-50)}:where(h1,h2,h3,h4,h5,h6){font-family:var(--parlour--font-family-inter-tight);color:var(--parlour--color-neutral-800);line-height:1.1}:where(h1){font-size:var(--parlour--font-size-3-x-large);font-style:normal;font-weight:600}:where(h2){font-size:var(--parlour--font-size-2-x-large);font-style:normal;font-weight:600}:where(h3){font-size:var(--parlour--font-size-x-large);font-style:normal;font-weight:600}:where(h4){font-size:var(--parlour--font-size-large);font-style:normal;font-weight:600}:where(h5){font-size:var(--parlour--font-size-medium);font-style:normal;font-weight:600}:where(h6){font-size:var(--parlour--font-size-medium);font-style:italic;font-weight:600}:where(figcaption){font-size:var(--parlour--font-size-small);font-style:italic;font-weight:var(--parlour--font-weight-light);color:var(--parlour--color-warning)}:where(button){color:var(--parlour--color-white);background-color:var(--parlour--color-black)}:where(a){color:var(--parlour--color-accent-primary)}:where(a:hover){color:var(--parlour--color-error)}:where(.is-layout-constrained)>*{margin-block:0}:where(.is-layout-constrained)>*+*{margin-block-start:var(--parlour--root-block-gap)}:where(.is-layout-flex),:where(.is-layout-grid){gap:var(--parlour--root-block-gap)}:where(.entry-content)>*+*{margin-block-start:var(--parlour--spacing-normal)}.is-layout-constrained>:where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:var(--parlour--layout-content-size);margin-left:auto!important;margin-right:auto!important}.is-layout-constrained>.alignwide{max-width:var(--parlour--layout-wide-size);margin-left:auto!important;margin-right:auto!important}.has-global-padding{padding-right:var(--parlour--root-padding-right);padding-left:var(--parlour--root-padding-left)}.has-global-padding>.alignfull{max-width:none;margin-right:calc(var(--parlour--root-padding-right) * -1);margin-left:calc(var(--parlour--root-padding-left) * -1)}.has-global-padding>.alignfull>.has-global-padding{padding-right:var(--parlour--root-padding-right);padding-left:var(--parlour--root-padding-left)}.is-layout-constrained>*+h1{margin-block-start:var(--parlour--spacing-large)}.is-layout-constrained>*+h2,.is-layout-constrained>*+h3,.is-layout-constrained>*+h4,.is-layout-constrained>*+h5,.is-layout-constrained>*+h6{margin-block-start:var(--parlour--spacing-medium)}.is-layout-constrained>:is(h1,h2,h3,h4,h5,h6)+*{margin-block-start:var(--parlour--spacing-small)}.parlour-aside>.sticky{position:sticky}.parlour-main:focus{outline:none}.parlour-main>*+*{margin-block-start:var(--parlour--spacing-medium);margin-block-end:0}.parlour-main a{font-weight:700;text-decoration:none;transition:color .25s}.parlour-main a:hover{text-decoration:underline;transition:color .25s}.parlour-main--padding{padding-block:var(--parlour--spacing-4-x-large)}.parlour-flex-group{margin-left:auto;margin-right:auto;display:flex}.parlour-flex-group--row{flex-direction:row}.parlour-flex-group--column{flex-direction:column}.parlour-flex-group--wrap{flex-wrap:wrap}.parlour-flex-group--nowrap{flex-wrap:nowrap}.parlour-flex-group--justify-start{justify-content:flex-start}.parlour-flex-group--justify-center{justify-content:center}.parlour-flex-group--justify-end{justify-content:flex-end}.parlour-flex-group--justify-space-between{justify-content:space-between}.parlour-flex-group--align-start{align-items:flex-start}.parlour-flex-group--align-center{align-items:center}.parlour-flex-group--align-end{align-items:flex-end}.parlour-flex-group--align-stretch{align-items:stretch}.parlour-flex-group--gap-none{gap:0}.parlour-flex-group--padding-none{padding:0}.parlour-flex-group.parlour-flex-group--margin-none{margin-block:0}.parlour-flex-group--gap--3-x-small{gap:var(--parlour--spacing--3-x-small)}.parlour-flex-group--padding--3-x-small{padding:var(--parlour--spacing--3-x-small)}.parlour-flex-group.parlour-flex-group--margin--3-x-small{margin-block:var(--parlour--spacing--3-x-small)}.parlour-flex-group--gap--2-x-small{gap:var(--parlour--spacing--2-x-small)}.parlour-flex-group--padding--2-x-small{padding:var(--parlour--spacing--2-x-small)}.parlour-flex-group.parlour-flex-group--margin--2-x-small{margin-block:var(--parlour--spacing--2-x-small)}.parlour-flex-group--gap--x-small{gap:var(--parlour--spacing--x-small)}.parlour-flex-group--padding--x-small{padding:var(--parlour--spacing--x-small)}.parlour-flex-group.parlour-flex-group--margin--x-small{margin-block:var(--parlour--spacing--x-small)}.parlour-flex-group--gap--small{gap:var(--parlour--spacing--small)}.parlour-flex-group--padding--small{padding:var(--parlour--spacing--small)}.parlour-flex-group.parlour-flex-group--margin--small{margin-block:var(--parlour--spacing--small)}.parlour-flex-group--gap--normal{gap:var(--parlour--spacing--normal)}.parlour-flex-group--padding--normal{padding:var(--parlour--spacing--normal)}.parlour-flex-group.parlour-flex-group--margin--normal{margin-block:var(--parlour--spacing--normal)}.parlour-flex-group--gap--medium{gap:var(--parlour--spacing--medium)}.parlour-flex-group--padding--medium{padding:var(--parlour--spacing--medium)}.parlour-flex-group.parlour-flex-group--margin--medium{margin-block:var(--parlour--spacing--medium)}.parlour-flex-group--gap--large{gap:var(--parlour--spacing--large)}.parlour-flex-group--padding--large{padding:var(--parlour--spacing--large)}.parlour-flex-group.parlour-flex-group--margin--large{margin-block:var(--parlour--spacing--large)}.parlour-flex-group--gap--x-large{gap:var(--parlour--spacing--x-large)}.parlour-flex-group--padding--x-large{padding:var(--parlour--spacing--x-large)}.parlour-flex-group.parlour-flex-group--margin--x-large{margin-block:var(--parlour--spacing--x-large)}.parlour-flex-group--gap--2-x-large{gap:var(--parlour--spacing--2-x-large)}.parlour-flex-group--padding--2-x-large{padding:var(--parlour--spacing--2-x-large)}.parlour-flex-group.parlour-flex-group--margin--2-x-large{margin-block:var(--parlour--spacing--2-x-large)}.parlour-flex-group--gap--3-x-large{gap:var(--parlour--spacing--3-x-large)}.parlour-flex-group--padding--3-x-large{padding:var(--parlour--spacing--3-x-large)}.parlour-flex-group.parlour-flex-group--margin--3-x-large{margin-block:var(--parlour--spacing--3-x-large)}.parlour-flex-group--gap--4-x-large{gap:var(--parlour--spacing--4-x-large)}.parlour-flex-group--padding--4-x-large{padding:var(--parlour--spacing--4-x-large)}.parlour-flex-group.parlour-flex-group--margin--4-x-large{margin-block:var(--parlour--spacing--4-x-large)}.parlour-flex-group--gap--5-x-large{gap:var(--parlour--spacing--5-x-large)}.parlour-flex-group--padding--5-x-large{padding:var(--parlour--spacing--5-x-large)}.parlour-flex-group.parlour-flex-group--margin--5-x-large{margin-block:var(--parlour--spacing--5-x-large)}.parlour-buttongroup{gap:var(--parlour--spacing-2-x-small);flex-wrap:wrap;display:flex}@media (width>768px){.parlour-buttongroup{flex:1}}.parlour-buttongroup--justify-start{justify-content:flex-start}.parlour-buttongroup--justify-center{justify-content:center}.parlour-buttongroup--justify-end{justify-content:flex-end}.parlour-button,a.parlour-button{padding:var(--parlour--spacing-small) var(--parlour--spacing-medium);font-family:var(--parlour--font-family-inter-tight);font-size:var(--parlour--font-size-medium);font-weight:var(--parlour--font-weight-light);line-height:var(--parlour--line-height-tight);border-radius:var(--parlour--radius-sm);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}.parlour-button:hover,.parlour-button.parlour-button--outline:hover,a.parlour-button:hover,a.parlour-button.parlour-button--outline:hover{color:var(--parlour--color-white);background-color:var(--parlour--color-accent-secondary);border-color:var(--parlour--color-accent-secondary);text-decoration:none}.parlour-button--light{color:var(--parlour--color-neutral-900);background-color:var(--parlour--color-neutral-100);border-color:var(--parlour--color-neutral-100)}.parlour-button--light.parlour-button--outline{color:var(--parlour--color-neutral-900);background-color:var(--parlour--color-neutral-100)}.parlour-button--link{color:var(--parlour--color-white);background-color:var(--parlour--color-accent-secondary);border-color:var(--parlour--color-accent-secondary)}.parlour-button--link:hover{background-color:var(--parlour--color-neutral-800);border-color:var(--parlour--color-neutral-800)}.parlour-button--link.parlour-button--outline{color:var(--parlour--color-accent-secondary);background-color:var(--parlour--color-white)}.parlour-button--link.parlour-button--outline:hover{background-color:var(--parlour--color-neutral-800);border-color:var(--parlour--color-neutral-800)}.parlour-button--medium{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-800);border-color:var(--parlour--color-neutral-800)}.parlour-button--medium.parlour-button--outline{color:var(--parlour--color-neutral-800);background-color:var(--parlour--color-white)}.parlour-button--dark{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-900);border-color:var(--parlour--color-neutral-900)}.parlour-button--dark.parlour-button--outline{color:var(--parlour--color-neutral-900);background-color:var(--parlour--color-white)}.parlour-button--white{color:var(--parlour--color-neutral-800);background-color:var(--parlour--color-white);border-color:var(--parlour--color-white)}.parlour-button--white.parlour-button--outline{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-800)}.parlour-button--disabled{color:var(--parlour--color-neutral-800);background-color:var(--parlour--color-neutral-300);border-color:var(--parlour--color-neutral-300);cursor:default}.parlour-button--small,a.parlour-button--small{padding:var(--parlour--spacing-x-small) var(--parlour--spacing-small);font-size:var(--parlour--font-size-small)}.parlour-button--full{width:100%}.parlour-button--radius-sm{border-radius:var(--parlour--radius-sm)}.parlour-button--radius-md{border-radius:var(--parlour--radius-md)}.parlour-button--radius-lg{border-radius:var(--parlour--radius-lg)}.parlour-button--radius-full{border-radius:var(--parlour--radius-full)}.parlour-button--radius-none{border-radius:0}.parlour-site-header{padding-block:var(--parlour--spacing-medium);padding-inline:var(--parlour--root-padding-x);background-color:var(--parlour--color-white);border-bottom:1px solid var(--parlour--color-neutral-400)}.parlour-site-header__branding p{font-family:var(--parlour--font-family-source-serif-4);font-size:var(--parlour--font-size-large);margin:0;padding:0}.parlour-site-header__branding p span{color:var(--parlour--color-accent-secondary);font-style:italic}.parlour-site-header__branding p a{font-weight:var(--parlour--font-weight-normal);color:var(--parlour--color-neutral-900);text-decoration:none}.parlour-site-header__branding p a:hover,.parlour-site-header__branding p a:focus-visible{color:var(--parlour--color-accent-secondary)}.parlour-site-header__branding p a:hover span.parlour-site-header__title-accent,.parlour-site-header__branding p a:focus-visible span.parlour-site-header__title-accent{color:var(--parlour--color-neutral-900)}.parlour-site-header__nav ul{gap:var(--parlour--spacing-medium);margin:0;padding:0;list-style:none;display:flex}.parlour-site-header__nav ul li{font-family:var(--parlour--font-family-inter-tight);font-size:var(--parlour--font-size-small);margin:0;padding:0}.parlour-site-header__nav ul li a{font-weight:var(--parlour--font-weight-normal);color:var(--parlour--color-neutral-950);text-decoration:none}.parlour-site-footer{font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-x-small);color:var(--parlour--color-neutral-800);letter-spacing:-1px;padding-block:var(--parlour--spacing-large);padding-inline:var(--parlour--root-padding-x);background-color:var(--parlour--color-white)}.parlour-site-footer p{margin:0}.parlour-site-footer a{font-weight:var(--parlour--font-weight-medium);color:var(--parlour--color-accent-primary);text-decoration:none}.parlour-site-footer a:hover{color:var(--parlour--color-accent-secondary);text-decoration:underline}.parlour-site-footer__inner{place-items:center;gap:var(--parlour--spacing-medium);max-width:var(--parlour--layout-wide-size);text-align:center;margin-inline:auto;display:grid}@media (width>768px){.parlour-site-footer__inner{text-align:start;grid-template-columns:1fr auto 1fr;justify-items:start}.parlour-site-footer__copyright{grid-column:1}.parlour-site-footer__text{text-align:center;grid-column:2}.parlour-site-footer__social{grid-column:3;justify-self:end}}.parlour-site-footer__social{justify-content:center;gap:var(--parlour--spacing-medium);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.parlour-site-footer .parlour-site-footer__social-link{font-size:var(--parlour--font-size-medium);color:var(--parlour--color-neutral-500);transition:transform var(--parlour--transition-fast), color var(--parlour--transition-fast);display:inline-flex}.parlour-site-footer .parlour-site-footer__social-link:hover{color:var(--parlour--color-accent-secondary);transform:translateY(calc(var(--parlour--spacing-2-x-small) * -1));text-decoration:none}.parlour-site-footer .parlour-site-footer__social-link:focus-visible{color:var(--parlour--color-accent-secondary);outline:2px solid var(--parlour--color-accent-primary);outline-offset:var(--parlour--spacing-2-x-small)}@media (prefers-reduced-motion:reduce){.parlour-site-footer .parlour-site-footer__social-link{transition:none}.parlour-site-footer .parlour-site-footer__social-link:hover{transform:none}}.parlour-infobar{width:100%;padding-block:var(--parlour--spacing-small);padding-inline:var(--parlour--root-padding-x);background-color:var(--parlour--color-neutral-100)}.parlour-infobar p{font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-2-x-small);margin:0}.parlour-skip-link{z-index:var(--parlour--z-500);padding:var(--parlour--spacing-x-small) var(--parlour--spacing-normal);font-family:var(--parlour--font-family-inter-tight);font-size:var(--parlour--font-size-small);font-weight:var(--parlour--font-weight-semibold);line-height:var(--parlour--line-height-tight);color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-950);border-radius:var(--parlour--radius-md);transition:transform var(--parlour--transition-fast);text-decoration:none;position:fixed;inset-block-start:0;inset-inline-start:var(--parlour--spacing-x-small);transform:translateY(-100%)}.parlour-skip-link:focus{transform:translateY(var(--parlour--spacing-x-small));outline-offset:var(--parlour--spacing-2-x-small)}.parlour-skip-link:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){.parlour-skip-link{transition:none}}.parlour-column{gap:var(--parlour--spacing-large);margin-left:auto;margin-right:auto;display:grid}.parlour-column--one{grid-template-columns:repeat(1,minmax(0,1fr))}.parlour-column--two{grid-template-columns:1fr}@media (width>600px){.parlour-column--two{grid-template-columns:repeat(2,minmax(0,1fr))}}.parlour-column--three{grid-template-columns:1fr}@media (width>768px){.parlour-column--three{grid-template-columns:repeat(3,minmax(0,1fr))}}.parlour-column--four{grid-template-columns:1fr}@media (width>600px){.parlour-column--four{grid-template-columns:repeat(2,minmax(0,1fr))}}.parlour-column--one-third{grid-template-columns:1fr}@media (width>768px){.parlour-column--one-third{grid-template-columns:33% auto}}.parlour-column--two-thirds{grid-template-columns:1fr}@media (width>768px){.parlour-column--two-thirds{grid-template-columns:66% auto}}.parlour-column>.parlour-column__content :first-child{margin-top:0}.parlour-column>.parlour-column__content :last-child{margin-bottom:0}@media (width>600px){.parlour-column--two>.is-first,.parlour-column--four>.is-first{order:-1}}@media (width>768px){.parlour-column--three>.is-first,.parlour-column--one-third>.is-first,.parlour-column--two-thirds>.is-first{order:-1}}.parlour-grid-group{grid-template-columns:minmax(0,1fr);margin-left:auto;margin-right:auto;display:grid}ul.parlour-grid-group,ol.parlour-grid-group{padding-left:0;list-style:none}@media (width>600px){.parlour-grid-group--columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>768px){.parlour-grid-group--columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.parlour-grid-group--align-start{align-items:start}.parlour-grid-group--align-center{align-items:center}.parlour-grid-group--align-end{align-items:end}.parlour-grid-group--align-stretch{align-items:stretch}.parlour-grid-group--gap-none{gap:0}.parlour-grid-group--gap-3-x-small{gap:var(--parlour--spacing-3-x-small)}.parlour-grid-group--gap-2-x-small{gap:var(--parlour--spacing-2-x-small)}.parlour-grid-group--gap-x-small{gap:var(--parlour--spacing-x-small)}.parlour-grid-group--gap-small{gap:var(--parlour--spacing-small)}.parlour-grid-group--gap-normal{gap:var(--parlour--spacing-normal)}.parlour-grid-group--gap-medium{gap:var(--parlour--spacing-medium)}.parlour-grid-group--gap-large{gap:var(--parlour--spacing-large)}.parlour-grid-group--gap-x-large{gap:var(--parlour--spacing-x-large)}.parlour-grid-group--gap-2-x-large{gap:var(--parlour--spacing-2-x-large)}.parlour-grid-group--gap-3-x-large{gap:var(--parlour--spacing-3-x-large)}.parlour-grid-group--gap-4-x-large{gap:var(--parlour--spacing-4-x-large)}.parlour-grid-group--gap-5-x-large{gap:var(--parlour--spacing-5-x-large)}.parlour-grid-group--row-gap-none{row-gap:0}.parlour-grid-group--row-gap-3-x-small{row-gap:var(--parlour--spacing-3-x-small)}.parlour-grid-group--row-gap-2-x-small{row-gap:var(--parlour--spacing-2-x-small)}.parlour-grid-group--row-gap-x-small{row-gap:var(--parlour--spacing-x-small)}.parlour-grid-group--row-gap-small{row-gap:var(--parlour--spacing-small)}.parlour-grid-group--row-gap-normal{row-gap:var(--parlour--spacing-normal)}.parlour-grid-group--row-gap-medium{row-gap:var(--parlour--spacing-medium)}.parlour-grid-group--row-gap-large{row-gap:var(--parlour--spacing-large)}.parlour-grid-group--row-gap-x-large{row-gap:var(--parlour--spacing-x-large)}.parlour-grid-group--row-gap-2-x-large{row-gap:var(--parlour--spacing-2-x-large)}.parlour-grid-group--row-gap-3-x-large{row-gap:var(--parlour--spacing-3-x-large)}.parlour-grid-group--row-gap-4-x-large{row-gap:var(--parlour--spacing-4-x-large)}.parlour-grid-group--row-gap-5-x-large{row-gap:var(--parlour--spacing-5-x-large)}.parlour-container>*{margin-left:auto;margin-right:auto}.parlour-container>*+*{margin-block-start:var(--parlour--spacing-medium);margin-block-end:0}.parlour-container>.has-global-padding,.has-global-padding>.parlour-container.alignfull>.has-global-padding{padding-left:0;padding-right:0}.parlour-container>.has-global-padding>:first-child,.has-global-padding>.parlour-container.alignfull>.has-global-padding>:first-child{margin-top:0}.parlour-container>.has-global-padding>:last-child,.has-global-padding>.parlour-container.alignfull>.has-global-padding>:last-child{margin-bottom:0}.parlour-container.aligncontent,.parlour-container.alignwide,.parlour-container.alignfull{padding-right:var(--parlour--spacing-3-x-large);padding-left:var(--parlour--spacing-3-x-large)}@media (width>768px){.parlour-container.aligncontent,.parlour-container.alignwide,.parlour-container.alignfull{padding-right:var(--parlour--spacing-4-x-large);padding-left:var(--parlour--spacing-4-x-large)}}.parlour-main>div>.parlour-container--no-gap+.parlour-container--no-gap{margin-top:var(--parlour--spacing-2-x-large)}.parlour-main>div>.parlour-container--no-gap.alignfull+.parlour-container--no-gap.alignfull{margin-top:0}.parlour-container--pale,.parlour-container--light,.parlour-container--medium,.parlour-container--dark,.parlour-container--white{padding-block:var(--parlour--spacing-5-x-large)}.parlour-container--pale{background-color:var(--parlour--color-neutral-50);border:1px solid var(--parlour--color-neutral-50)}.parlour-container--light{background-color:var(--parlour--color-neutral-200)}.parlour-container--medium{background-color:var(--parlour--color-neutral-900);color:var(--parlour--color-white)}.parlour-container--medium h2,.parlour-container--medium h3,.parlour-container--medium h4,.parlour-container--medium h5,.parlour-container--medium h6{color:var(--parlour--color-white)}.parlour-container--dark{background-color:var(--parlour--color-neutral-950);color:var(--parlour--color-white)}.parlour-container--dark h2,.parlour-container--dark h3,.parlour-container--dark h4,.parlour-container--dark h5,.parlour-container--dark h6{color:var(--parlour--color-white)}.parlour-container--white{background-color:var(--parlour--color-white)}.parlour-container--light,.parlour-container--white{border:1px solid var(--parlour--color-neutral-300)}.parlour-container--light.alignfull,.parlour-container--white.alignfull{border-inline:none}.parlour-container--light.alignfull+.parlour-container--has-border,.parlour-container--white.alignfull+.parlour-container--has-border{border-top:none}.parlour-container--full{width:100%}.parlour-container--radius-sm:not(.alignfull){border-radius:var(--parlour--radius-sm)}.parlour-container--radius-md:not(.alignfull){border-radius:var(--parlour--radius-md)}.parlour-container--radius-lg:not(.alignfull){border-radius:var(--parlour--radius-lg)}.parlour-container--radius-xl:not(.alignfull){border-radius:var(--parlour--radius-xl)}.parlour-container--radius-full:not(.alignfull){border-radius:var(--parlour--radius-full)}.parlour-container--radius-none:not(.alignfull){border-radius:0}.parlour-card{min-width:0}.parlour-card>:first-child{margin-top:0}.parlour-card>:last-child{margin-bottom:0}.parlour-card.parlour-card :is(h1,h2,h3,h4,h5,h6){color:inherit}li.parlour-card{list-style:none}.parlour-card--bg-white{background-color:var(--parlour--color-white);color:var(--parlour--color-black)}.parlour-card--bg-light{background-color:var(--parlour--color-neutral-50);color:var(--parlour--color-black)}.parlour-card--bg-medium{background-color:var(--parlour--color-neutral-900);color:var(--parlour--color-white)}.parlour-card--bg-dark{background-color:var(--parlour--color-neutral-950);color:var(--parlour--color-white)}.parlour-card--border{border-style:solid;border-width:1px}.parlour-card--border-white{border-color:var(--parlour--color-white)}.parlour-card--border-light{border-color:var(--parlour--color-neutral-300)}.parlour-card--border-medium{border-color:var(--parlour--color-neutral-500)}.parlour-card--border-dark{border-color:var(--parlour--color-neutral-900)}.parlour-card--radius-none{border-radius:0}.parlour-card--radius-sm{border-radius:var(--parlour--radius-sm)}.parlour-card--radius-md{border-radius:var(--parlour--radius-md)}.parlour-card--radius-lg{border-radius:var(--parlour--radius-lg)}.parlour-card--radius-xl{border-radius:var(--parlour--radius-xl)}.parlour-card--radius-full{border-radius:var(--parlour--radius-full)}.parlour-card--padding-inline-none{--parlour-card-padding-inline:0}.parlour-card--padding-block-none{--parlour-card-padding-block:0}.parlour-card--padding-inline-3-x-small{--parlour-card-padding-inline:var(--parlour--spacing-3-x-small)}.parlour-card--padding-block-3-x-small{--parlour-card-padding-block:var(--parlour--spacing-3-x-small)}.parlour-card--padding-inline-2-x-small{--parlour-card-padding-inline:var(--parlour--spacing-2-x-small)}.parlour-card--padding-block-2-x-small{--parlour-card-padding-block:var(--parlour--spacing-2-x-small)}.parlour-card--padding-inline-x-small{--parlour-card-padding-inline:var(--parlour--spacing-x-small)}.parlour-card--padding-block-x-small{--parlour-card-padding-block:var(--parlour--spacing-x-small)}.parlour-card--padding-inline-small{--parlour-card-padding-inline:var(--parlour--spacing-small)}.parlour-card--padding-block-small{--parlour-card-padding-block:var(--parlour--spacing-small)}.parlour-card--padding-inline-normal{--parlour-card-padding-inline:var(--parlour--spacing-normal)}.parlour-card--padding-block-normal{--parlour-card-padding-block:var(--parlour--spacing-normal)}.parlour-card--padding-inline-medium{--parlour-card-padding-inline:var(--parlour--spacing-medium)}.parlour-card--padding-block-medium{--parlour-card-padding-block:var(--parlour--spacing-medium)}.parlour-card--padding-inline-large{--parlour-card-padding-inline:var(--parlour--spacing-large)}.parlour-card--padding-block-large{--parlour-card-padding-block:var(--parlour--spacing-large)}.parlour-card--padding-inline-x-large{--parlour-card-padding-inline:var(--parlour--spacing-x-large)}.parlour-card--padding-block-x-large{--parlour-card-padding-block:var(--parlour--spacing-x-large)}.parlour-card--padding-inline-2-x-large{--parlour-card-padding-inline:var(--parlour--spacing-2-x-large)}.parlour-card--padding-block-2-x-large{--parlour-card-padding-block:var(--parlour--spacing-2-x-large)}.parlour-card--padding-inline-3-x-large{--parlour-card-padding-inline:var(--parlour--spacing-3-x-large)}.parlour-card--padding-block-3-x-large{--parlour-card-padding-block:var(--parlour--spacing-3-x-large)}.parlour-card--padding-inline-4-x-large{--parlour-card-padding-inline:var(--parlour--spacing-4-x-large)}.parlour-card--padding-block-4-x-large{--parlour-card-padding-block:var(--parlour--spacing-4-x-large)}.parlour-card--padding-inline-5-x-large{--parlour-card-padding-inline:var(--parlour--spacing-5-x-large)}.parlour-card--padding-block-5-x-large{--parlour-card-padding-block:var(--parlour--spacing-5-x-large)}.parlour-card{padding-inline:var(--parlour-card-padding-inline,0);padding-block:var(--parlour-card-padding-block,0)}.parlour-card--linked{transition:border-color var(--parlour--transition-fast);flex-direction:column;padding:0;display:flex}.parlour-card--linked:hover{border-color:var(--parlour--color-neutral-500)}@media (prefers-reduced-motion:reduce){.parlour-card--linked{transition:none}}.parlour-card__link{padding-inline:var(--parlour-card-padding-inline,0);padding-block:var(--parlour-card-padding-block,0);flex:1}.parlour-card__link>:first-child{margin-top:0}.parlour-card__link>:last-child{margin-bottom:0}.parlour-card .parlour-card__link{font-weight:inherit;color:inherit;text-decoration:none}.parlour-card .parlour-card__link:hover{text-decoration:none}.parlour-card .parlour-card__link:focus-visible{outline:2px solid var(--parlour--color-accent-primary);outline-offset:var(--parlour--spacing-2-x-small)}.parlour-project-card,:where(.parlour-project-card) .parlour-card__link{flex-direction:column;display:flex}.parlour-project-card>*,:where(.parlour-project-card) .parlour-card__link>*{margin-block:0}.parlour-project-card__meta{justify-content:space-between;align-items:center;gap:var(--parlour--spacing-small);margin-block-end:var(--parlour--spacing-x-large);display:flex}.parlour-project-card__type{font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-2-x-small);color:var(--parlour--color-neutral-600);text-transform:uppercase;margin:0}.parlour-project-card__icon{font-size:var(--parlour--font-size-medium);color:var(--parlour--color-neutral-600);margin-inline-start:auto}.parlour-project-card .parlour-project-card__title{font-family:var(--parlour--font-family-inter-tight);font-size:var(--parlour--font-size-large);font-weight:var(--parlour--font-weight-medium);line-height:var(--parlour--line-height-tight);letter-spacing:-.5px;color:var(--parlour--color-neutral-950);transition:color var(--parlour--transition-fast)}.parlour-project-card__version{font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-2-x-small);color:var(--parlour--color-neutral-600);margin-block-start:var(--parlour--spacing-2-x-small)}.parlour-project-card__description{font-family:var(--parlour--font-family-inter-tight);font-size:var(--parlour--font-size-small);line-height:var(--parlour--line-height-normal);color:var(--parlour--color-neutral-800);margin-block-start:var(--parlour--spacing-large)}.parlour-project-card__footer{justify-content:space-between;align-items:baseline;gap:var(--parlour--spacing-small);font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-2-x-small);color:var(--parlour--color-neutral-900);border-top:1px solid var(--parlour--color-neutral-300);margin-block-start:auto;padding-block-start:var(--parlour--spacing-medium);display:flex}.parlour-project-card .parlour-card__link:hover .parlour-project-card__title,.parlour-project-card .parlour-card__link:hover .parlour-project-card__footer{color:var(--parlour--color-accent-secondary)}.parlour-project-card .parlour-card__link:hover .parlour-project-card__icon,.parlour-project-card .parlour-card__link:hover .parlour-project-card__version{color:var(--parlour--color-accent-primary)}.parlour-project-card>:has(+.parlour-project-card__footer){margin-block-end:var(--parlour--spacing-x-large)}.parlour-project-card .parlour-card__link>:has(+.parlour-project-card__footer){margin-block-end:var(--parlour--spacing-x-large)}.parlour-project-card__arrow{transition:transform var(--parlour--transition-fast)}.parlour-card__link:hover .parlour-project-card__arrow{transform:translateX(var(--parlour--spacing-2-x-small))}@media (prefers-reduced-motion:reduce){.parlour-project-card__arrow{transition:none}}.parlour-code-block{padding-inline:var(--parlour--spacing-x-large);padding-block:var(--parlour--spacing-x-large);font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-small);line-height:var(--parlour--line-height-normal);color:var(--parlour--color-neutral-950);background-color:var(--parlour--color-neutral-200);border-color:var(--parlour--color-neutral-300);overflow-x:auto}.parlour-code-block code{font-family:inherit;display:block}.parlour-code-block--light{background-color:var(--parlour--color-neutral-200)}.parlour-code-block--medium{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-900);border-color:var(--parlour--color-neutral-900)}.parlour-code-block--dark{color:var(--parlour--color-white);background-color:var(--parlour--color-neutral-950);border-color:var(--parlour--color-neutral-950)}.parlour-code-block--white{background-color:var(--parlour--color-white)}.parlour-code-block--has-border{border-style:solid;border-width:1px}.parlour-code-block--radius-sm{border-radius:var(--parlour--radius-sm)}.parlour-code-block--radius-md{border-radius:var(--parlour--radius-md)}.parlour-code-block--radius-lg{border-radius:var(--parlour--radius-lg)}.parlour-code-block--radius-xl{border-radius:var(--parlour--radius-xl)}.parlour-code-block--radius-full{border-radius:var(--parlour--radius-full)}.parlour-code-block--radius-none{border-radius:0}.parlour-figure{max-width:100%;margin:0}.parlour-figure img{width:100%;height:auto;display:block}.parlour-figure--xs{width:320px}.parlour-figure--sm{width:440px}.parlour-figure--md{width:512px}.parlour-figure--lg{width:48rem}.parlour-figure--full{width:100%}@media (width<=768px){.parlour-figure--xs,.parlour-figure--sm,.parlour-figure--md,.parlour-figure--lg{width:100%}}.parlour-figure--left{margin:var(--parlour--spacing-medium) 0}@media (width>768px){.parlour-figure--left{float:left;clear:left;margin-top:0;margin-right:var(--parlour--spacing-large)}}.parlour-figure--right{margin:var(--parlour--spacing-medium) 0}@media (width>768px){.parlour-figure--right{float:right;clear:right;margin-top:0;margin-left:var(--parlour--spacing-large)}}.parlour-figure--center{margin:var(--parlour--spacing-medium) 0}.parlour-figure__inner{border-radius:var(--parlour--radius-md);overflow:hidden}.parlour-figure__caption{background-color:var(--parlour--color-neutral-100);padding:var(--parlour--spacing-small) var(--parlour--spacing-medium);font-size:var(--parlour--font-size-medium);color:var(--parlour--color-neutral-800);font-style:italic}.parlour-hero{padding-bottom:var(--parlour--spacing-small)}.parlour-hero .parlour-flex-group{gap:var(--parlour--spacing-3-x-large)}.parlour-hero__content{flex:1}.parlour-hero__code{min-width:0}@media (width<=768px){.parlour-hero__code{display:none}}@media (width>768px){.parlour-hero__code{flex:0 0 40%}}.parlour-hero__code>*{margin-block:0}.parlour-hero-header__title{font-size:var(--parlour--font-size-4-x-large);font-weight:var(--parlour--font-weight-normal);color:var(--parlour--color-neutral-900);letter-spacing:-2px;margin-top:0;line-height:1.1}.parlour-hero-header__title-accent{font-family:var(--parlour--font-family-source-serif-4);font-weight:var(--parlour--font-weight-extra-light);font-style:italic;display:block}.parlour-hero-header__prefix{font-size:var(--parlour--font-size-medium);font-weight:var(--parlour--font-weight-light);padding-bottom:var(--parlour--spacing-3-x-large);margin:0;font-style:italic}.parlour-hero-header ul.parlour-hero-header__stats{gap:var(--parlour--spacing-2-x-large);font-size:var(--parlour--font-size-small);font-weight:var(--parlour--font-weight-light);margin-top:var(--parlour--spacing-x-large);padding-top:var(--parlour--spacing-medium);border-top:1px solid var(--parlour--color-neutral-300);padding-left:0;list-style:none;display:flex}.parlour-container--dark .parlour-hero-header__title,.parlour-container--medium .parlour-hero-header__title{color:var(--parlour--color-white)}.parlour-section-header{padding-bottom:var(--parlour--spacing-large);margin-bottom:var(--parlour--spacing-2-x-large);border-bottom:1px solid}.parlour-section-header__prefix{margin:0 0 var(--parlour--spacing-medium);font-family:var(--parlour--font-family-jetbrains-mono);font-size:var(--parlour--font-size-2-x-small);font-weight:var(--parlour--font-weight-normal);letter-spacing:.1em;text-transform:uppercase;color:var(--parlour--color-neutral-600)}.parlour-section-header__title{font-size:var(--parlour--font-size-2-x-large);font-weight:var(--parlour--font-weight-normal);letter-spacing:-1px;color:var(--parlour--color-neutral-950);margin:0;line-height:1.1}.parlour-container--dark .parlour-section-header__prefix,.parlour-container--medium .parlour-section-header__prefix{color:var(--parlour--color-neutral-300)}
43
43
  /*$vite$:1*/
@@ -2,7 +2,7 @@
2
2
 
3
3
  export declare const parlourTokens: Record<string, Record<string, string>>;
4
4
  export declare const parlourTokenKeys: {
5
- readonly color: { readonly black: 'black'; readonly white: 'white'; readonly 'accent-primary': 'accent-primary'; readonly 'accent-secondary': 'accent-secondary'; readonly 'neutral-50': 'neutral-50'; readonly 'neutral-100': 'neutral-100'; readonly 'neutral-200': 'neutral-200'; readonly 'neutral-300': 'neutral-300'; readonly 'neutral-400': 'neutral-400'; readonly 'neutral-500': 'neutral-500'; readonly 'neutral-600': 'neutral-600'; readonly 'neutral-700': 'neutral-700'; readonly 'neutral-800': 'neutral-800'; readonly 'neutral-900': 'neutral-900'; readonly 'neutral-950': 'neutral-950'; readonly info: 'info'; readonly success: 'success'; readonly warning: 'warning'; readonly error: 'error'; readonly linkedin: 'linkedin'; readonly facebook: 'facebook'; readonly bluesky: 'bluesky'; readonly twitter: 'twitter'; readonly instagram: 'instagram'; readonly youtube: 'youtube'; readonly tiktok: 'tiktok' };
5
+ readonly color: { readonly black: 'black'; readonly white: 'white'; readonly 'accent-primary': 'accent-primary'; readonly 'accent-secondary': 'accent-secondary'; readonly 'neutral-50': 'neutral-50'; readonly 'neutral-100': 'neutral-100'; readonly 'neutral-200': 'neutral-200'; readonly 'neutral-300': 'neutral-300'; readonly 'neutral-400': 'neutral-400'; readonly 'neutral-500': 'neutral-500'; readonly 'neutral-600': 'neutral-600'; readonly 'neutral-700': 'neutral-700'; readonly 'neutral-800': 'neutral-800'; readonly 'neutral-900': 'neutral-900'; readonly 'neutral-950': 'neutral-950'; readonly info: 'info'; readonly success: 'success'; readonly warning: 'warning'; readonly error: 'error'; readonly github: 'github'; readonly linkedin: 'linkedin'; readonly facebook: 'facebook'; readonly bluesky: 'bluesky'; readonly twitter: 'twitter'; readonly instagram: 'instagram'; readonly youtube: 'youtube'; readonly tiktok: 'tiktok' };
6
6
  readonly gradient: { readonly 'white-to-neutral-50': 'white-to-neutral-50' };
7
7
  readonly spacing: { readonly '3-x-small': '3-x-small'; readonly '2-x-small': '2-x-small'; readonly 'x-small': 'x-small'; readonly small: 'small'; readonly normal: 'normal'; readonly medium: 'medium'; readonly large: 'large'; readonly 'x-large': 'x-large'; readonly '2-x-large': '2-x-large'; readonly '3-x-large': '3-x-large'; readonly '4-x-large': '4-x-large'; readonly '5-x-large': '5-x-large' };
8
8
  readonly fontFamily: { readonly 'inter-tight': 'inter-tight'; readonly 'source-serif-4': 'source-serif-4'; readonly 'jetbrains-mono': 'jetbrains-mono' };
@@ -21,6 +21,7 @@
21
21
  --parlour--color-success: #16a34a;
22
22
  --parlour--color-warning: #fff154;
23
23
  --parlour--color-error: #dc2626;
24
+ --parlour--color-github: #181717;
24
25
  --parlour--color-linkedin: #0A66C2;
25
26
  --parlour--color-facebook: #1877F2;
26
27
  --parlour--color-bluesky: #1185FE;
@@ -2,7 +2,7 @@
2
2
 
3
3
  export declare const parlourTokens: Record<string, Record<string, string>>;
4
4
  export declare const parlourTokenKeys: {
5
- readonly color: { readonly black: 'black'; readonly white: 'white'; readonly 'accent-primary': 'accent-primary'; readonly 'accent-secondary': 'accent-secondary'; readonly 'neutral-50': 'neutral-50'; readonly 'neutral-100': 'neutral-100'; readonly 'neutral-200': 'neutral-200'; readonly 'neutral-300': 'neutral-300'; readonly 'neutral-400': 'neutral-400'; readonly 'neutral-500': 'neutral-500'; readonly 'neutral-600': 'neutral-600'; readonly 'neutral-700': 'neutral-700'; readonly 'neutral-800': 'neutral-800'; readonly 'neutral-900': 'neutral-900'; readonly 'neutral-950': 'neutral-950'; readonly info: 'info'; readonly success: 'success'; readonly warning: 'warning'; readonly error: 'error'; readonly linkedin: 'linkedin'; readonly facebook: 'facebook'; readonly bluesky: 'bluesky'; readonly twitter: 'twitter'; readonly instagram: 'instagram'; readonly youtube: 'youtube'; readonly tiktok: 'tiktok' };
5
+ readonly color: { readonly black: 'black'; readonly white: 'white'; readonly 'accent-primary': 'accent-primary'; readonly 'accent-secondary': 'accent-secondary'; readonly 'neutral-50': 'neutral-50'; readonly 'neutral-100': 'neutral-100'; readonly 'neutral-200': 'neutral-200'; readonly 'neutral-300': 'neutral-300'; readonly 'neutral-400': 'neutral-400'; readonly 'neutral-500': 'neutral-500'; readonly 'neutral-600': 'neutral-600'; readonly 'neutral-700': 'neutral-700'; readonly 'neutral-800': 'neutral-800'; readonly 'neutral-900': 'neutral-900'; readonly 'neutral-950': 'neutral-950'; readonly info: 'info'; readonly success: 'success'; readonly warning: 'warning'; readonly error: 'error'; readonly github: 'github'; readonly linkedin: 'linkedin'; readonly facebook: 'facebook'; readonly bluesky: 'bluesky'; readonly twitter: 'twitter'; readonly instagram: 'instagram'; readonly youtube: 'youtube'; readonly tiktok: 'tiktok' };
6
6
  readonly gradient: { readonly 'white-to-neutral-50': 'white-to-neutral-50' };
7
7
  readonly spacing: { readonly '3-x-small': '3-x-small'; readonly '2-x-small': '2-x-small'; readonly 'x-small': 'x-small'; readonly small: 'small'; readonly normal: 'normal'; readonly medium: 'medium'; readonly large: 'large'; readonly 'x-large': 'x-large'; readonly '2-x-large': '2-x-large'; readonly '3-x-large': '3-x-large'; readonly '4-x-large': '4-x-large'; readonly '5-x-large': '5-x-large' };
8
8
  readonly fontFamily: { readonly 'inter-tight': 'inter-tight'; readonly 'source-serif-4': 'source-serif-4'; readonly 'jetbrains-mono': 'jetbrains-mono' };
@@ -21,6 +21,7 @@ export const parlourTokens = {
21
21
  success: '#16a34a',
22
22
  warning: '#fff154',
23
23
  error: '#dc2626',
24
+ github: '#181717',
24
25
  linkedin: '#0A66C2',
25
26
  facebook: '#1877F2',
26
27
  bluesky: '#1185FE',
@@ -130,7 +131,7 @@ export const parlourTokens = {
130
131
  };
131
132
 
132
133
  export const parlourTokenKeys = {
133
- color: { black: 'black', white: 'white', 'accent-primary': 'accent-primary', 'accent-secondary': 'accent-secondary', 'neutral-50': 'neutral-50', 'neutral-100': 'neutral-100', 'neutral-200': 'neutral-200', 'neutral-300': 'neutral-300', 'neutral-400': 'neutral-400', 'neutral-500': 'neutral-500', 'neutral-600': 'neutral-600', 'neutral-700': 'neutral-700', 'neutral-800': 'neutral-800', 'neutral-900': 'neutral-900', 'neutral-950': 'neutral-950', info: 'info', success: 'success', warning: 'warning', error: 'error', linkedin: 'linkedin', facebook: 'facebook', bluesky: 'bluesky', twitter: 'twitter', instagram: 'instagram', youtube: 'youtube', tiktok: 'tiktok' },
134
+ color: { black: 'black', white: 'white', 'accent-primary': 'accent-primary', 'accent-secondary': 'accent-secondary', 'neutral-50': 'neutral-50', 'neutral-100': 'neutral-100', 'neutral-200': 'neutral-200', 'neutral-300': 'neutral-300', 'neutral-400': 'neutral-400', 'neutral-500': 'neutral-500', 'neutral-600': 'neutral-600', 'neutral-700': 'neutral-700', 'neutral-800': 'neutral-800', 'neutral-900': 'neutral-900', 'neutral-950': 'neutral-950', info: 'info', success: 'success', warning: 'warning', error: 'error', github: 'github', linkedin: 'linkedin', facebook: 'facebook', bluesky: 'bluesky', twitter: 'twitter', instagram: 'instagram', youtube: 'youtube', tiktok: 'tiktok' },
134
135
  gradient: { 'white-to-neutral-50': 'white-to-neutral-50' },
135
136
  spacing: { '3-x-small': '3-x-small', '2-x-small': '2-x-small', 'x-small': 'x-small', small: 'small', normal: 'normal', medium: 'medium', large: 'large', 'x-large': 'x-large', '2-x-large': '2-x-large', '3-x-large': '3-x-large', '4-x-large': '4-x-large', '5-x-large': '5-x-large' },
136
137
  fontFamily: { 'inter-tight': 'inter-tight', 'source-serif-4': 'source-serif-4', 'jetbrains-mono': 'jetbrains-mono' },
@@ -21,6 +21,7 @@
21
21
  --parlour--color-success: #16a34a;
22
22
  --parlour--color-warning: #fff154;
23
23
  --parlour--color-error: #dc2626;
24
+ --parlour--color-github: #181717;
24
25
  --parlour--color-linkedin: #0A66C2;
25
26
  --parlour--color-facebook: #1877F2;
26
27
  --parlour--color-bluesky: #1185FE;
@@ -44,6 +44,7 @@ export declare const colorClasses: {
44
44
  success: "success";
45
45
  warning: "warning";
46
46
  error: "error";
47
+ github: "github";
47
48
  linkedin: "linkedin";
48
49
  facebook: "facebook";
49
50
  bluesky: "bluesky";
@@ -93,6 +94,7 @@ export declare const flexAlignClasses: {
93
94
  stretch: string;
94
95
  };
95
96
  export declare const backgroundColorClasses: {
97
+ pale: string;
96
98
  light: string;
97
99
  medium: string;
98
100
  dark: string;
@@ -1 +1 @@
1
- {"version":3,"file":"propClasses.d.ts","sourceRoot":"","sources":["../../src/utils/propClasses.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;CAW1B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;CAO7B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;CAExB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAG1B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;CAG/B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;CAI1B,CAAC;AAIF,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAGF,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAIF,eAAO,MAAM,sBAAsB;;;;;CAKlC,CAAC"}
1
+ {"version":3,"file":"propClasses.d.ts","sourceRoot":"","sources":["../../src/utils/propClasses.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;CAW1B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;CAO7B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAExB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAG1B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;CAG/B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;CAI1B,CAAC;AAIF,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAGF,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAIF,eAAO,MAAM,sBAAsB;;;;;;CAMlC,CAAC"}
@@ -21,6 +21,7 @@
21
21
  --parlour--color-success: #16a34a;
22
22
  --parlour--color-warning: #fff154;
23
23
  --parlour--color-error: #dc2626;
24
+ --parlour--color-github: #181717;
24
25
  --parlour--color-linkedin: #0A66C2;
25
26
  --parlour--color-facebook: #1877F2;
26
27
  --parlour--color-bluesky: #1185FE;
@@ -21,6 +21,7 @@
21
21
  --parlour--color-success: #16a34a;
22
22
  --parlour--color-warning: #fff154;
23
23
  --parlour--color-error: #dc2626;
24
+ --parlour--color-github: #181717;
24
25
  --parlour--color-linkedin: #0A66C2;
25
26
  --parlour--color-facebook: #1877F2;
26
27
  --parlour--color-bluesky: #1185FE;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@troychaplin/parlour-ui",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "A token-first UI kit for React and WordPress. One set of tokens, every flavour.",
5
5
  "author": "Troy Chaplin",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- "use client";const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./shared-B07rlYN8.cjs");let n=require("react");n=e.t(n,1);let r=require("react/jsx-runtime");var i=(0,n.createContext)(e=>(0,r.jsx)(`a`,{...e})),a=()=>(0,n.useContext)(i),o=({text:e=`Button`,color:t=`medium`,rounded:n=`sm`,type:i=`button`,isSmall:o=!1,isFull:s=!1,isOutline:c=!1,disabled:l=!1,className:u,...d})=>{let f=a(),p=[`parlour-button`,l?`parlour-button--disabled`:`parlour-button--${t}`,n&&`parlour-button--radius-${n}`,c&&!l&&`parlour-button--outline`,o&&`parlour-button--small`,s&&`parlour-button--full`,u].filter(Boolean).join(` `);return d.href===void 0?(0,r.jsx)(`button`,{type:i,className:p,disabled:l,...d,children:e}):(0,r.jsx)(f,{className:p,...d,children:e})},s=({component:e,children:t})=>(0,r.jsx)(i.Provider,{value:e,children:t}),c=[{href:`/about`,label:`About`},{href:`/blog`,label:`Blog`},{href:`/resume`,label:`Resume`}],l=(e,t)=>{let n=t?e.indexOf(t):-1;return!t||n===-1?[e]:[e.slice(0,n),t,e.slice(n+t.length)]},u=({className:e=``,children:n,siteTitle:i=`Parlour`,siteTitleAccent:s})=>{let u=[`parlour-site-header`,e].filter(Boolean).join(` `),d=a(),[f,p,m]=l(i,s);return(0,r.jsx)(`header`,{className:u,children:(0,r.jsxs)(t.f,{gap:`normal`,maxWidth:`alignwide`,justify:`space-between`,align:`center`,children:[(0,r.jsx)(`div`,{className:`parlour-site-header__branding`,children:(0,r.jsx)(`p`,{children:(0,r.jsxs)(d,{href:`/`,rel:`home`,children:[f,p&&(0,r.jsx)(`span`,{className:`parlour-site-header__title-accent`,children:p}),m]})})}),(0,r.jsx)(`nav`,{className:`parlour-site-header__nav`,"aria-label":`Primary`,children:(0,r.jsx)(`ul`,{children:c.map(({href:e,label:t})=>(0,r.jsx)(`li`,{children:(0,r.jsx)(d,{href:e,children:t})},e))})}),(0,r.jsx)(`div`,{children:(0,r.jsx)(t.d,{children:(0,r.jsx)(o,{text:`Hire Me`,isSmall:!0,isOutline:!0})})}),n]})})};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return u}});
@@ -1,93 +0,0 @@
1
- "use client";
2
- import { d as e, f as t } from "./shared-DZTw1JIu.mjs";
3
- import { createContext as n, useContext as r } from "react";
4
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
- var o = n((e) => /* @__PURE__ */ i("a", { ...e })), s = () => r(o), c = ({ text: e = "Button", color: t = "medium", rounded: n = "sm", type: r = "button", isSmall: a = !1, isFull: o = !1, isOutline: c = !1, disabled: l = !1, className: u, ...d }) => {
6
- let f = s(), p = [
7
- "parlour-button",
8
- l ? "parlour-button--disabled" : `parlour-button--${t}`,
9
- n && `parlour-button--radius-${n}`,
10
- c && !l && "parlour-button--outline",
11
- a && "parlour-button--small",
12
- o && "parlour-button--full",
13
- u
14
- ].filter(Boolean).join(" ");
15
- return d.href === void 0 ? /* @__PURE__ */ i("button", {
16
- type: r,
17
- className: p,
18
- disabled: l,
19
- ...d,
20
- children: e
21
- }) : /* @__PURE__ */ i(f, {
22
- className: p,
23
- ...d,
24
- children: e
25
- });
26
- }, l = ({ component: e, children: t }) => /* @__PURE__ */ i(o.Provider, {
27
- value: e,
28
- children: t
29
- }), u = [
30
- {
31
- href: "/about",
32
- label: "About"
33
- },
34
- {
35
- href: "/blog",
36
- label: "Blog"
37
- },
38
- {
39
- href: "/resume",
40
- label: "Resume"
41
- }
42
- ], d = (e, t) => {
43
- let n = t ? e.indexOf(t) : -1;
44
- return !t || n === -1 ? [e] : [
45
- e.slice(0, n),
46
- t,
47
- e.slice(n + t.length)
48
- ];
49
- }, f = ({ className: n = "", children: r, siteTitle: o = "Parlour", siteTitleAccent: l }) => {
50
- let f = ["parlour-site-header", n].filter(Boolean).join(" "), p = s(), [m, h, g] = d(o, l);
51
- return /* @__PURE__ */ i("header", {
52
- className: f,
53
- children: /* @__PURE__ */ a(t, {
54
- gap: "normal",
55
- maxWidth: "alignwide",
56
- justify: "space-between",
57
- align: "center",
58
- children: [
59
- /* @__PURE__ */ i("div", {
60
- className: "parlour-site-header__branding",
61
- children: /* @__PURE__ */ i("p", { children: /* @__PURE__ */ a(p, {
62
- href: "/",
63
- rel: "home",
64
- children: [
65
- m,
66
- h && /* @__PURE__ */ i("span", {
67
- className: "parlour-site-header__title-accent",
68
- children: h
69
- }),
70
- g
71
- ]
72
- }) })
73
- }),
74
- /* @__PURE__ */ i("nav", {
75
- className: "parlour-site-header__nav",
76
- "aria-label": "Primary",
77
- children: /* @__PURE__ */ i("ul", { children: u.map(({ href: e, label: t }) => /* @__PURE__ */ i("li", { children: /* @__PURE__ */ i(p, {
78
- href: e,
79
- children: t
80
- }) }, e)) })
81
- }),
82
- /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(e, { children: /* @__PURE__ */ i(c, {
83
- text: "Hire Me",
84
- isSmall: !0,
85
- isOutline: !0
86
- }) }) }),
87
- r
88
- ]
89
- })
90
- });
91
- };
92
- //#endregion
93
- export { l as n, c as r, f as t };
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs");let t=require("react");t=e.t(t,1);let n=require("react/jsx-runtime");var r=({children:e,content:t})=>t?(0,n.jsx)(`article`,{dangerouslySetInnerHTML:{__html:t}}):(0,n.jsx)(`article`,{children:e}),i=({children:e,isSticky:t,topSpace:r=0,className:i,...a})=>{let o=[`relative`,`parlour-aside`,`parlour-prose`,i].filter(Boolean).join(` `);return(0,n.jsx)(`aside`,{className:o,...a,children:t?(0,n.jsx)(`div`,{className:`sticky`,style:{top:`${r}px`},children:e}):e})},a=({children:e,className:t})=>(0,n.jsx)(`body`,{className:t||``,children:e}),o=({children:e,hasPadding:t=!0,className:r,...i})=>{let a=[`parlour-main`,t&&`parlour-main--padding`,r].filter(Boolean).join(` `);return(0,n.jsx)(`main`,{className:a,...i,children:(0,n.jsx)(`div`,{className:`alignfull has-global-padding is-layout-constrained entry-content`,children:e})})},s={color:{black:`black`,white:`white`,"accent-primary":`accent-primary`,"accent-secondary":`accent-secondary`,"neutral-50":`neutral-50`,"neutral-100":`neutral-100`,"neutral-200":`neutral-200`,"neutral-300":`neutral-300`,"neutral-400":`neutral-400`,"neutral-500":`neutral-500`,"neutral-600":`neutral-600`,"neutral-700":`neutral-700`,"neutral-800":`neutral-800`,"neutral-900":`neutral-900`,"neutral-950":`neutral-950`,info:`info`,success:`success`,warning:`warning`,error:`error`,linkedin:`linkedin`,facebook:`facebook`,bluesky:`bluesky`,twitter:`twitter`,instagram:`instagram`,youtube:`youtube`,tiktok:`tiktok`},gradient:{"white-to-neutral-50":`white-to-neutral-50`},spacing:{"3-x-small":`3-x-small`,"2-x-small":`2-x-small`,"x-small":`x-small`,small:`small`,normal:`normal`,medium:`medium`,large:`large`,"x-large":`x-large`,"2-x-large":`2-x-large`,"3-x-large":`3-x-large`,"4-x-large":`4-x-large`,"5-x-large":`5-x-large`},fontFamily:{"inter-tight":`inter-tight`,"source-serif-4":`source-serif-4`,"jetbrains-mono":`jetbrains-mono`},fontSize:{"2-x-small":`2-x-small`,"x-small":`x-small`,small:`small`,medium:`medium`,large:`large`,"x-large":`x-large`,"2-x-large":`2-x-large`,"3-x-large":`3-x-large`,"4-x-large":`4-x-large`,"5-x-large":`5-x-large`,hero:`hero`,"heading-small":`heading-small`,"heading-medium":`heading-medium`,"heading-large":`heading-large`,"heading-x-large":`heading-x-large`,"heading-primary":`heading-primary`},shadow:{natural:`natural`,deep:`deep`,sharp:`sharp`,outlined:`outlined`,crisp:`crisp`},fontWeight:{thin:`thin`,"extra-light":`extra-light`,light:`light`,normal:`normal`,medium:`medium`,semibold:`semibold`,bold:`bold`,"extra-bold":`extra-bold`,black:`black`},lineHeight:{tight:`tight`,normal:`normal`,loose:`loose`},radius:{sm:`sm`,md:`md`,lg:`lg`,xl:`xl`,full:`full`},transition:{fast:`fast`,base:`base`},z:{100:`100`,200:`200`,500:`500`},layout:{"content-size":`content-size`,"wide-size":`wide-size`,"small-size":`small-size`,"full-size":`full-size`},viewport:{mobile:`mobile`,tablet:`tablet`}},c={alignsmall:`alignsmall`,aligncontent:`aligncontent`,alignwide:`alignwide`,alignfull:`alignfull`},l={1:`one`,2:`two`,3:`three`,4:`four`,"1/3":`one-third`,"2/3":`two-thirds`};({...s.color});var u={none:`none`,...s.spacing},d={none:`none`,...s.radius},f={start:`start`,center:`center`,end:`end`,"space-between":`space-between`},p={start:`start`,center:`center`,end:`end`,stretch:`stretch`},m={light:`light`,medium:`medium`,dark:`dark`,white:`white`},h=({children:e,as:t=`div`,direction:r=`row`,wrap:i=`wrap`,justify:a,align:o,gap:s,padding:l,margin:d,maxWidth:m,className:h,...g})=>{let _=t,v=[`parlour-layout parlour-flex-group`,`parlour-flex-group--${r}`,`parlour-flex-group--${i}`,m&&c[m],a&&`parlour-flex-group--justify-${f[a]}`,o&&`parlour-flex-group--align-${p[o]}`,s&&`parlour-flex-group--gap-${u[s]}`,l&&`parlour-flex-group--padding-${u[l]}`,d&&`parlour-flex-group--margin-${u[d]}`,h].filter(Boolean).join(` `);return(0,n.jsx)(_,{className:v,...g,children:e})},g=({children:e,align:t=`start`})=>(0,n.jsx)(`div`,{className:`parlour-buttongroup parlour-buttongroup--justify-${t}`,children:e}),_=864e5,v=e=>(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())-Date.UTC(e.getFullYear(),0,0))/_,y=e=>[e.getFullYear(),e.getMonth()+1,e.getDate()].map(e=>String(e).padStart(2,`0`)).join(`-`),b=({className:e=``,children:t,date:r=new Date})=>{let i=[`parlour-infobar`,e].filter(Boolean).join(` `),a=r.toLocaleDateString(`en-US`,{month:`long`,day:`numeric`,year:`numeric`});return(0,n.jsx)(`div`,{className:i,children:(0,n.jsxs)(h,{gap:`normal`,maxWidth:`alignwide`,justify:`space-between`,align:`center`,children:[(0,n.jsx)(`p`,{children:`Building since 2005`}),(0,n.jsxs)(`p`,{children:[`Day `,v(r),` `,(0,n.jsx)(`span`,{"aria-hidden":`true`,children:`•`}),` `,(0,n.jsx)(`time`,{dateTime:y(r),children:a})]}),t]})})},x=({children:e,isFirst:t=!1})=>(0,n.jsx)(`div`,{className:`parlour-column__content ${t?`is-first`:``}`,children:e});x.displayName=`Column.Content`;var S=({children:e,cols:t=`2`,maxWidth:r=`aligncontent`})=>{let i=[`parlour-layout parlour-column parlour-column--${l[t]}`,r].filter(Boolean).join(` `);return(0,n.jsx)(`div`,{className:i,children:e})},C=Object.assign(S,{Content:x});S.displayName=`Column`;var w=({children:e,as:t=`div`,columns:r=3,gap:i=`medium`,rowGap:a,align:o,maxWidth:s,className:l,...d})=>{let f=t,m=[`parlour-layout parlour-grid-group`,`parlour-grid-group--columns-${r}`,`parlour-grid-group--gap-${u[i]}`,a&&`parlour-grid-group--row-gap-${u[a]}`,o&&`parlour-grid-group--align-${p[o]}`,s&&c[s],l].filter(Boolean).join(` `);return(0,n.jsx)(f,{className:m,role:t===`ul`||t===`ol`?`list`:void 0,...d,children:e})},T=({children:e,as:t=`div`,maxWidth:r=`aligncontent`,contentWidth:i=`aligncontent`,color:a,className:o,borderRadius:s=`md`,...c})=>{let l=t,u=[`parlour-layout parlour-container`,`is-layout-constrained`,r,a&&`parlour-container--no-gap parlour-container--${a}`,s&&`parlour-container--radius-${s}`,o].filter(Boolean).join(` `),d=[`has-global-padding`,i,a&&`has-root-padding`].filter(Boolean).join(` `);return(0,n.jsx)(l,{className:u,...c,children:(0,n.jsx)(`div`,{className:d,children:e})})},E=({children:e,as:t=`div`,backgroundColor:r=`light`,border:i=!0,borderColor:a=`light`,borderRadius:o=`none`,padding:s=`large`,className:c,...l})=>{let f=t,p=[`parlour-card`,`parlour-card--bg-${m[r]}`,i&&`parlour-card--border`,i&&`parlour-card--border-${m[a]}`,`parlour-card--radius-${d[o]}`,`parlour-card--padding-${u[s]}`,c].filter(Boolean).join(` `);return(0,n.jsx)(f,{className:p,...l,children:e})},D=({code:e,color:t,className:r,hasBorder:i,borderRadius:a,...o})=>{let s=[`parlour-code-block`,t&&`parlour-code-block--${m[t]}`,i&&`parlour-code-block--has-border`,a&&`parlour-code-block--radius-${d[a]}`,r].filter(Boolean).join(` `);return(0,n.jsx)(`pre`,{className:s,tabIndex:0,...o,children:(0,n.jsx)(`code`,{children:e})})},O=({children:e,caption:t,size:r=`full`,align:i=`none`})=>{let a=i===`left`?`alignleft`:i===`right`?`alignright`:``,o=[`parlour-figure`,`parlour-figure--${r}`,i===`none`?``:`parlour-figure--${i}`,a].filter(Boolean).join(` `);return(0,n.jsx)(`figure`,{className:o,children:(0,n.jsxs)(`div`,{className:`parlour-figure__inner`,children:[e,t&&(0,n.jsx)(`figcaption`,{className:`parlour-figure__caption`,children:t})]})})},k=({className:e=``,children:t})=>{let r=[`parlour-hero`,e].filter(Boolean).join(` `);return(0,n.jsx)(T,{as:`section`,className:r,maxWidth:`alignfull`,contentWidth:`alignwide`,children:(0,n.jsx)(h,{gap:`normal`,maxWidth:`alignwide`,justify:`space-between`,align:`center`,children:t})})},A=({className:e,prefix:t,title:r,titleAccent:i,level:a=1,children:o,...s})=>{let c=[`parlour-hero-header`,e].filter(Boolean).join(` `),l=`h${a}`;return(0,n.jsxs)(`header`,{className:c,...s,children:[t&&(0,n.jsx)(`p`,{className:`parlour-hero-header__prefix`,children:t}),r&&(0,n.jsxs)(l,{className:`parlour-hero-header__title`,children:[r,` `,i&&(0,n.jsx)(`span`,{className:`parlour-hero-header__title-accent`,children:i})]}),o]})},j=({className:e,prefix:t,title:r,level:i=2,...a})=>{let o=[`parlour-section-header`,e].filter(Boolean).join(` `),s=`h${i}`;return(0,n.jsxs)(`header`,{className:o,...a,children:[t&&(0,n.jsx)(`p`,{className:`parlour-section-header__prefix`,children:t}),r&&(0,n.jsx)(s,{className:`parlour-section-header__title`,children:r})]})};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return b}});