@font-face{font-family:Inter;src:url(/InterVariable.693b77d4.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/InterVariable-Italic.e564f652.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Fraunces;src:url(/Fraunces.e6638ea1.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(/Fraunces-Italic.a61bef9d.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}:root{--lilac-100:#f1eaf7;--lilac-200:#dfcef2;--lilac-300:#cdb4ed;--lilac-500:#966bb9;--lilac-700:#68428a;--rose-100:#f9e9f0;--rose-200:#f2cddd;--rose-300:#edbfd7;--plum-700:#493354;--plum-900:#302438;--plum-950:#201925;--color-canvas:#faf7fc;--color-surface:#f1eaf7;--color-surface-hover:#eae0f2;--color-text:#302438;--color-muted:#6e5c79;--color-border:#d8ccdf;--color-control-border:#927d9e;--color-accent:#68428a;--color-accent-hover:#563175;--color-on-accent:#fff;--color-lilac:#dfcef2;--color-rose:#f2cddd;--color-on-pastel:#493354;--color-focus:#954067;--color-success:#31634e;--color-success-surface:#e6f0e9;--color-warning:#785316;--color-warning-surface:#f7edd9;--color-danger:#9c3b58;--color-danger-surface:#f8e5ec;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:Inter, ui-sans-serif, system-ui, sans-serif;--font-serif:Fraunces, Georgia, serif;--font-mono:ui-monospace, "SFMono-Regular", Consolas, monospace;--text-display:clamp(2.75rem, 6vw, 5.25rem);--text-heading:clamp(1.75rem, 3vw, 2.5rem);--text-lead:1.125rem;--text-body:1rem;--text-small:.875rem;--text-xs:var(--text-small);--text-sm:var(--text-small);--text-base:var(--text-body);--text-lg:var(--text-lead);--text-h3:var(--text-lead);--text-h2:var(--text-heading);--text-h1:var(--text-display);--leading-tight:1.08;--leading-body:1.65;--leading-reading:1.85;--tracking-tight:-.045em;--tracking-label:.12em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--gutter:clamp(1.25rem, 4.5vw, 4rem);--section-space:clamp(3rem, 6vw, 5rem);--width-page:87rem;--width-reading:65ch;--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1.5rem;--radius-pill:999px;--duration-fast:.12s;--duration-normal:.18s;--ease:cubic-bezier(.2, .7, .3, 1);--shadow-small:0 4px 16px #2019250d}:root[data-theme=dark]{--color-canvas:#201925;--color-surface:#2b2232;--color-surface-hover:#382b41;--color-text:#f4eaf8;--color-muted:#bdadc7;--color-border:#53445e;--color-control-border:#927ea0;--color-accent:#d2b6f1;--color-accent-hover:#e0c9f6;--color-on-accent:#2a173c;--color-lilac:#cdb4ed;--color-rose:#edbfd7;--color-focus:#f2b8da;--color-success:#b0d8bf;--color-success-surface:#263a30;--color-warning:#efcf95;--color-warning-surface:#3d3225;--color-danger:#f4b6ca;--color-danger-surface:#452736;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--color-canvas:#201925;--color-surface:#2b2232;--color-surface-hover:#382b41;--color-text:#f4eaf8;--color-muted:#bdadc7;--color-border:#53445e;--color-control-border:#927ea0;--color-accent:#d2b6f1;--color-accent-hover:#e0c9f6;--color-on-accent:#2a173c;--color-lilac:#cdb4ed;--color-rose:#edbfd7;--color-focus:#f2b8da;--color-success:#b0d8bf;--color-success-surface:#263a30;--color-warning:#efcf95;--color-warning-surface:#3d3225;--color-danger:#f4b6ca;--color-danger-surface:#452736;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-normal:0s}}*,:before,:after{box-sizing:border-box}html{background:var(--color-canvas);scroll-padding-top:var(--space-8)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{color:var(--color-text);background:var(--color-canvas);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;font-optical-sizing:auto;margin:0}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-weight:450;line-height:var(--leading-tight)}h1{font-size:var(--text-h1);letter-spacing:var(--tracking-tight)}h2{font-size:var(--text-h2);letter-spacing:-.04em}h3{font-size:var(--text-h3);letter-spacing:-.035em}a{color:var(--color-accent);text-underline-offset:.25em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}::selection{color:var(--color-on-pastel);background:var(--color-rose)}svg,img{max-width:100%}code,pre{font-family:var(--font-mono);font-size:.85em}code{overflow-wrap:anywhere}.container{width:min(100%, var(--width-page));padding-inline:var(--gutter);margin-inline:auto}.eyebrow{color:var(--color-muted);font-size:var(--text-small);font-weight:500}.caption{color:var(--color-muted);font-size:var(--text-xs);line-height:1.6}.serif{font-family:var(--font-serif);font-variation-settings:"SOFT" 30, "WONK" 1;letter-spacing:-.045em;font-weight:450}.text-link{align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:500;display:inline-flex}.section-heading{justify-content:space-between;align-items:baseline;gap:var(--space-6);margin-bottom:var(--space-8);display:flex}.prose{max-width:var(--width-reading);font-size:var(--text-lead);line-height:var(--leading-reading)}.prose>*+*{margin-top:var(--space-6)}.prose h2{padding-top:var(--space-4);font-family:var(--font-serif);font-variation-settings:"SOFT" 30, "WONK" 1;letter-spacing:-.03em;font-size:clamp(1.75rem,3vw,2.25rem)}.prose h3{padding-top:var(--space-2);font-size:var(--text-lg)}.prose p,.prose li{color:var(--color-text)}.prose strong{color:var(--color-text);font-weight:600}.prose blockquote{border-left:2px solid var(--color-accent);padding:var(--space-2) 0 var(--space-2) var(--space-6);font-family:var(--font-serif);font-variation-settings:"SOFT" 30, "WONK" 1;margin-inline:0;font-size:1.6rem;line-height:1.45}.prose blockquote p{color:var(--color-text)}.prose code{color:var(--color-text);background:var(--color-surface);border-radius:var(--radius-sm);padding:.15em .35em}.prose pre{padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);line-height:1.7;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose ul,.prose ol{padding-left:var(--space-6)}.prose li+li{margin-top:var(--space-2)}.prose hr{border:0;border-top:1px solid var(--color-border);margin-block:var(--space-12)}.prose figure{padding-block:var(--space-4)}.prose figcaption{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-muted)}@media (width<=700px){.section-heading{gap:var(--space-3);flex-direction:column}}.prose h4{font-size:var(--text-lg);letter-spacing:-.03em;font-family:var(--font-serif);font-variation-settings:"SOFT" 30, "WONK" 1}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.action{justify-content:center;align-items:center;gap:var(--space-6);min-height:48px;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);border:1px solid #0000;font-weight:500;line-height:1.4;text-decoration:none;display:inline-flex}.action.primary{background:var(--color-accent);color:var(--color-on-accent)}.action.primary:hover{background:var(--color-accent-hover)}.action.secondary{color:var(--color-text);border-color:var(--color-control-border);background:0 0}.action.secondary:hover{background:var(--color-surface);border-color:var(--color-accent)}.action.quiet{color:var(--color-accent);background:0 0}.action.quiet:hover{background:var(--color-surface)}.action.small{min-height:40px;padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}.action:active:not(:disabled){transform:translateY(1px)}.action:disabled{cursor:not-allowed;opacity:.45;background:var(--color-surface);color:var(--color-muted);border-color:var(--color-border)}@media (pointer:coarse){.action.small{min-height:44px}}.badge{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);width:fit-content;font-weight:500;line-height:1.6;display:inline-flex}.badge.neutral{color:var(--color-muted);background:var(--color-surface)}.badge.lilac{color:var(--color-on-pastel);background:var(--color-lilac)}.badge.rose{color:var(--color-on-pastel);background:var(--color-rose)}.badge.success{color:var(--color-success);background:var(--color-success-surface)}.badge.warning{color:var(--color-warning);background:var(--color-warning-surface)}.badge.danger{color:var(--color-danger);background:var(--color-danger-surface)}.badge .dot{background:currentColor;border-radius:50%;width:5px;height:5px}.hero-title{font-size:var(--text-display);letter-spacing:-.05em;line-height:1.02}.hero-title.fraunces,.hero-title.mixed em{font-family:var(--font-serif);font-variation-settings:"SOFT" 30, "WONK" 1;font-weight:450}.hero-title.inter{font-family:var(--font-sans)}@media (width<=700px){.hero-title{font-size:clamp(2.75rem,10.5vw,4.5rem)}}.site-header .appearance{border-radius:var(--radius-sm);background:var(--color-surface);display:flex}.site-header .appearance button{border-radius:var(--radius-sm);width:44px;height:44px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.site-header .appearance button:hover{color:var(--color-accent);background:var(--color-surface-hover)}.site-header .appearance button:active{transform:translateY(1px)}.site-header .appearance svg{width:20px;height:20px}.site-header .header-inner{align-items:center;gap:var(--space-8);grid-template-columns:1fr auto 1fr;min-height:100px;display:grid}.site-header .wordmark{align-items:center;gap:var(--space-2);letter-spacing:-.06em;color:var(--color-text);white-space:nowrap;width:fit-content;font-size:23px;font-weight:500;text-decoration:none;display:inline-flex}.site-header .wordmark svg{color:var(--color-accent);flex-shrink:0}.site-header .domain{font-weight:400}.site-header .header-inner>.appearance{justify-self:end}.site-header nav{gap:var(--space-8);display:flex}.site-header nav a{min-height:44px;font-size:var(--text-small);color:var(--color-text);align-items:center;text-decoration:none;display:inline-flex}.site-header nav a:hover{text-decoration:underline}.site-header .skip{left:var(--space-4);padding:var(--space-3);background:var(--color-text);color:var(--color-canvas);z-index:10;position:fixed;top:-100px}.site-header .skip:focus{top:var(--space-4)}@media (width<=700px){.site-header .header-inner{gap:0 var(--space-2);padding-top:var(--space-3);grid-template-columns:1fr auto;min-height:112px}.site-header .wordmark{font-size:20px}.site-header nav{gap:var(--space-6);grid-area:2/1/auto/-1}.site-header .header-inner>.appearance{grid-area:1/2}}.site-footer footer{padding-block:var(--space-12) var(--space-8)}.site-footer .footer-top{justify-content:space-between;align-items:baseline;gap:var(--space-6);display:flex}.site-footer .footer-top p,.site-footer nav a{font-size:var(--text-small);color:var(--color-text)}.site-footer nav{gap:var(--space-6);flex-wrap:wrap;display:flex}.site-footer nav a{align-items:center;min-height:44px;display:inline-flex}.site-footer .signature{width:100%;color:var(--color-text);padding-block:var(--space-8);justify-content:space-between;align-items:center;font-size:clamp(5rem,18vw,15rem);line-height:1;text-decoration:none;display:flex}.site-footer .signature svg{color:var(--color-accent)}@media (width<=700px){.site-footer .footer-top{gap:var(--space-2);flex-direction:column}.site-footer nav{gap:var(--space-4)}.site-footer .signature svg{width:36px}}.featured-component .featured-project{gap:var(--space-12);grid-template-columns:1.15fr 1fr;align-items:center;display:grid}.featured-component .product-visual{min-width:0;padding:var(--space-8);border-radius:var(--radius-lg);place-items:center;display:grid;overflow:hidden}.featured-component .rose .product-visual{background:var(--color-rose)}.featured-component .lilac .product-visual{background:var(--color-lilac)}.featured-component .cauldron{height:580px}.featured-component .cauldron picture{width:242px}.featured-component .cauldron img{border-radius:30px}.featured-component .grimoire{align-items:start;height:500px}.featured-component .grimoire picture{width:100%}.featured-component .project-meta{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.featured-component .project-meta p{color:var(--color-muted);font-size:var(--text-small)}.featured-component h3{font-size:var(--text-heading)}.featured-component .project-headline{font-size:var(--text-heading);margin-top:var(--space-3);line-height:1.15}.featured-component .description{font-size:var(--text-body);max-width:45ch;margin-block:var(--space-6);line-height:1.8}.featured-component .product-story>.caption{margin-top:var(--space-4)}@media (width>=901px){.featured-component .lilac .product-story{grid-area:1/1}.featured-component .lilac .product-visual{grid-area:1/2}}@media (width<=900px){.featured-component .featured-project{gap:var(--space-6)}.featured-component .product-visual{padding:var(--space-5)}.featured-component .cauldron{height:480px}.featured-component .cauldron picture{width:200px}.featured-component .grimoire{height:420px}}@media (width<=700px){.featured-component .featured-project{gap:var(--space-6);grid-template-columns:1fr}.featured-component .cauldron{height:470px}.featured-component .grimoire{height:390px}}.project-directory section{padding-block:var(--section-space)}.project-directory .directory-heading{align-items:end;gap:var(--space-8);grid-template-columns:1fr auto;display:grid}.project-directory .directory-heading p{margin-top:var(--space-4);font-size:var(--text-body);max-width:46ch}.project-directory form{min-width:0}.project-directory label{margin-bottom:var(--space-2);font-size:var(--text-small);font-weight:500;display:block}.project-directory .filter-controls{align-items:stretch;gap:var(--space-2);display:flex}.project-directory .platform-select{min-width:0;display:grid;position:relative}.project-directory .select-chevron{right:var(--space-4);width:16px;height:16px;color:var(--color-text);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.project-directory select{appearance:none;width:100%;min-width:150px;max-width:100%;min-height:48px;padding:var(--space-3) var(--space-12) var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-control-border);border-radius:var(--radius-sm);font-size:var(--text-body);color:var(--color-text)}.project-directory .result-count{margin-block:var(--space-6)}.project-directory .directory-list{gap:var(--space-3);display:grid}.project-directory .directory-project{align-items:start;gap:var(--space-6);padding:var(--space-6);background:var(--color-surface);border-radius:var(--radius-md);grid-template-columns:1fr 2fr 1fr;display:grid}.project-directory h3{font-size:var(--text-lead);font-weight:550}.project-directory .platforms{font-size:var(--text-small);color:var(--color-muted);margin-top:var(--space-2)}.project-directory .description{font-size:var(--text-body);line-height:1.7}.project-directory .project-end{align-items:end;gap:var(--space-3);flex-direction:column;display:flex}.project-directory .project-end a{align-items:center;gap:var(--space-2);min-height:44px;font-size:var(--text-small);display:inline-flex}@media (width<=1000px){.project-directory .directory-heading{gap:var(--space-6);grid-template-columns:1fr}.project-directory .directory-project{grid-template-columns:1fr 2fr}.project-directory .project-end{flex-direction:row;grid-column:1/-1;justify-content:space-between;align-items:center}}@media (width<=600px){.project-directory .directory-project{gap:var(--space-4);padding:var(--space-5);grid-template-columns:1fr}.project-directory .filter-controls{flex-wrap:wrap}.project-directory .platform-select{flex:1}}@media (forced-colors:active){.project-directory select{appearance:auto}.project-directory .select-chevron{display:none}}.workshop .hero{gap:var(--space-12);padding-block:var(--space-12) var(--space-20);grid-template-columns:.95fr 1.1fr;align-items:center;display:grid}.workshop .intro>p{font-size:var(--text-lead);max-width:38ch;margin-block:var(--space-8);line-height:1.7}.workshop .hero-figure{min-width:0}.workshop .hero-visual{background:var(--color-lilac);border-radius:var(--radius-lg);height:480px;position:relative;overflow:hidden}.workshop .editor-screen{border-radius:var(--radius-sm);width:77%;height:80%;position:absolute;top:12%;left:5%;overflow:hidden}.workshop .phone-screen{border-radius:24px;width:32%;max-height:91%;position:absolute;bottom:6%;right:5%;overflow:hidden}.workshop figcaption{color:var(--color-muted);font-size:var(--text-small);margin-top:var(--space-3)}.workshop .featured-intro{justify-content:space-between;align-items:baseline;gap:var(--space-6);margin-bottom:var(--space-12);display:flex}.workshop .featured-intro p{font-size:var(--text-body)}.workshop .featured-list{gap:var(--space-20);display:grid}.workshop .musings{background:var(--color-surface)}.workshop .musings-inner{gap:var(--space-8);padding-block:var(--section-space);grid-template-columns:1fr 2fr;display:grid}.workshop .musings-inner>svg{color:var(--color-accent)}.workshop .musings p:not(.caption){font-size:var(--text-body);max-width:54ch;margin-top:var(--space-6);line-height:1.8}.workshop .musings .caption{margin-top:var(--space-5)}@media (width<=1000px){.workshop .hero{gap:var(--space-8)}.workshop .hero-visual{height:390px}}@media (width<=700px){.workshop .hero{gap:var(--space-8);padding-block:var(--space-6) var(--space-16);grid-template-columns:1fr}.workshop .intro>p{margin-block:var(--space-6)}.workshop .hero-visual{height:350px}.workshop .featured-intro{gap:var(--space-3);margin-bottom:var(--space-8);flex-direction:column}.workshop .featured-list{gap:var(--space-16)}.workshop .musings-inner{gap:var(--space-6);grid-template-columns:1fr}}[hidden],.no-js .js-only{display:none!important}picture,picture img{width:100%;height:auto;display:block}.theme-icon{display:none}html[data-theme=light] .theme-icon.light,html[data-theme=dark] .theme-icon.dark,html[data-theme=system] .theme-icon.system{display:block}.platform-links{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.platform-links a{align-items:center;min-height:44px;display:inline-flex}.platform-links [aria-current]{font-weight:600}.post{padding-block:var(--section-space);max-width:var(--width-reading)}.post h1{margin-block:var(--space-6)}.post .prose{margin-block:var(--space-8)}.musing-list{gap:var(--space-6);padding:0;list-style:none;display:grid}.musing-list a{font-size:var(--text-lead)}