.ph-link{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--link, var(--rule));padding-inline:3px;margin-inline:-3px;box-decoration-break:clone;-webkit-box-decoration-break:clone;transition:color .15s var(--ph-ease),background-color .15s var(--ph-ease)}.ph-link:focus-visible,.ph-link:hover{color:var(--foreground);background-color:var(--border)}@supports (color: color-mix(in oklab,red,red)){.ph-link:focus-visible,.ph-link:hover{color:color-mix(in oklab,var(--link, var(--foreground)) 50%,var(--foreground));background-color:color-mix(in oklab,var(--link, var(--rule)) 15%,var(--background))}}@media(hover:none){.ph-link:hover{background-color:transparent}}.ph-checkbox{appearance:none;display:inline-grid;place-content:center;width:16px;height:16px;margin:0;flex:none;border:1px solid var(--foreground);border-radius:0;background:var(--background);cursor:pointer}.ph-checkbox:before{content:"";width:12px;height:12px;background:var(--background);-webkit-mask:var(--ph-check) center / contain no-repeat;mask:var(--ph-check) center / contain no-repeat;opacity:0}.ph-checkbox:checked{background:var(--foreground)}.ph-checkbox:checked:before{opacity:1}.ph-checkbox:disabled{cursor:not-allowed;opacity:.4}.ph-checkbox{--ph-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpolygon points='22 4 22 6 21 6 21 7 20 7 20 8 19 8 19 9 18 9 18 10 17 10 17 11 16 11 16 12 15 12 15 13 14 13 14 14 13 14 13 15 12 15 12 16 11 16 11 17 10 17 10 18 8 18 8 17 7 17 7 16 6 16 6 15 5 15 5 14 4 14 4 13 3 13 3 12 2 12 2 10 4 10 4 11 5 11 5 12 6 12 6 13 7 13 7 14 8 14 8 15 10 15 10 14 11 14 11 13 12 13 12 12 13 12 13 11 14 11 14 10 15 10 15 9 16 9 16 8 17 8 17 7 18 7 18 6 19 6 19 5 20 5 20 4 22 4'/%3E%3C/svg%3E")}.ph-dialog{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 64px);margin:auto;padding:0;border:1px solid var(--foreground);border-radius:0;background:var(--background);color:var(--foreground);opacity:0;scale:.97;transition:opacity .15s var(--ph-ease),scale .15s var(--ph-ease),overlay .15s allow-discrete,display .15s allow-discrete}.ph-dialog[open]{opacity:1;scale:1}@starting-style{.ph-dialog[open]{opacity:0;scale:.97}}.ph-dialog::backdrop{background:#0000;transition:background .15s var(--ph-ease),overlay .15s allow-discrete,display .15s allow-discrete}.ph-dialog[open]::backdrop{background:#0006}@starting-style{.ph-dialog[open]::backdrop{background:#0000}}@media(prefers-reduced-motion:reduce){.ph-dialog,.ph-dialog::backdrop{transition:none}}.ph-toggle__chip{width:calc((100% - 4px) / var(--count));transform:translate(calc(100% * var(--index)));transition:transform .2s var(--ph-ease)}@media(prefers-reduced-motion:reduce){.ph-toggle__chip{transition:none}}.ph-logo-grid{--logo-base: 32px;font-size:var(--logo-base);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.9em 1.2em}@media(min-width:768px){.ph-logo-grid{--logo-base: 45px;gap:1em 1.75em}}.ph-logo-grid__cell{position:relative;display:block;flex:none}.ph-logo-grid__img{display:block;width:100%;height:100%;object-fit:contain}.ph-logo-grid__img--wash{filter:brightness(0)}.dark .ph-logo-grid__img--wash,[data-tone=dark] .ph-logo-grid__img--wash{filter:brightness(0) invert(1)}.ph-logo-grid__img--brand{position:absolute;inset:0;opacity:0;transition:opacity .2s ease}.ph-logo-grid__cell:is(:hover,:focus-visible) .ph-logo-grid__img--brand{opacity:1}@media(prefers-reduced-motion:reduce){.ph-logo-grid__img--brand{transition:none}}.ph-nav-link,.ph-nav-link[data-tone=light]{--nav-fg: var(--ph-black);--nav-hover-bg: var(--ph-black);--nav-hover-fg: var(--ph-yellow)}.dark .ph-nav-link:not([data-tone=light]),[data-tone=dark] .ph-nav-link:not([data-tone=light]),.ph-nav-link[data-tone=dark]{--nav-fg: var(--ph-cream);--nav-hover-bg: var(--ph-cream);--nav-hover-fg: var(--ph-purple)}.ph-nav-link{padding:.25rem .5rem;color:var(--nav-fg);font-family:var(--ph-font-mono);font-size:1rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase;text-decoration:none;transition:color .3s ease,background-color .3s ease}.ph-nav-link:hover,.ph-nav-link:focus-visible,.ph-nav-link[aria-current=page]{background:var(--nav-hover-bg);color:var(--nav-hover-fg)}@media(prefers-reduced-motion:reduce){.ph-nav-link{transition:none}}.ph-navbar__burger-line{display:block;width:28px;height:4px;background-color:currentColor;transition:transform .3s ease,opacity .3s ease}.ph-navbar__burger[aria-expanded=true] .ph-navbar__burger-line:nth-child(1){transform:translateY(10px) rotate(45deg)}.ph-navbar__burger[aria-expanded=true] .ph-navbar__burger-line:nth-child(2){opacity:0}.ph-navbar__burger[aria-expanded=true] .ph-navbar__burger-line:nth-child(3){transform:translateY(-10px) rotate(-45deg)}.ph-navbar__menu{visibility:hidden;transform:translateY(-100%);transition:transform .7s cubic-bezier(.12,.85,.25,1),visibility .7s}.ph-navbar__menu[data-open]{visibility:visible;transform:translateY(0)}.ph-navbar__menu-link{color:var(--ph-cream);font-family:var(--ph-font-mono);font-size:3rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase;text-decoration:none;transition:color .2s}.ph-navbar__menu-link:hover,.ph-navbar__menu-link:focus-visible{color:var(--ph-yellow)}.ph-navbar[data-menu-open] .ph-navbar__bar{color:var(--ph-cream)}@media(prefers-reduced-motion:reduce){.ph-navbar__burger-line,.ph-navbar__menu{transition:none}}.ph-navbar[data-tone=dark] .ph-navbar__bar{color:var(--ph-cream)}.ph-reveal-row__card{position:fixed;top:0;left:0;translate:var(--card-x, 0) var(--card-y, 0);z-index:20;display:flex;width:264px;flex-direction:column;gap:10px;padding:16px;background:var(--background);border:1px solid var(--border);box-shadow:0 8px 28px #0000001a;opacity:0;scale:.97;transform-origin:top left;pointer-events:none;--dur: .2s;--beat: 55ms;transition:opacity .12s var(--ph-ease),scale .12s var(--ph-ease)}.ph-reveal-row__frame{flex:none}.ph-reveal-row__text{opacity:0;translate:0 4px;transition:opacity .12s var(--ph-ease),translate .12s var(--ph-ease)}[data-ph-warm] .ph-reveal-row__card{--dur: .11s;--beat: 25ms}.ph-reveal-row:is(:hover,:has(:focus-visible)) .ph-reveal-row__card{opacity:1;scale:1;transition-duration:var(--dur)}.ph-reveal-row:is(:hover,:has(:focus-visible)) .ph-reveal-row__text{opacity:1;translate:0 0;transition-duration:var(--dur);transition-delay:var(--beat)}@media(hover:none){.ph-reveal-row__card{position:static;grid-column:1 / -1;width:auto;padding:6px 0 0;border:0;background:none;box-shadow:none;opacity:1;translate:none;scale:none;pointer-events:auto}.ph-reveal-row__frame{display:none}.ph-reveal-row__text{opacity:1;translate:none}}@media(prefers-reduced-motion:reduce){.ph-reveal-row__card,.ph-reveal-row:is(:hover,:has(:focus-visible)) .ph-reveal-row__card{scale:1;transition:opacity .12s linear}.ph-reveal-row__text,.ph-reveal-row:is(:hover,:has(:focus-visible)) .ph-reveal-row__text{translate:none;transition:opacity .12s linear;transition-delay:0ms}}.ph-tile__desc{position:absolute;inset:0;overflow:auto;margin:0;padding:14px;background:var(--background);opacity:0;filter:blur(3px);pointer-events:none;transition:opacity .1s var(--ph-ease),filter .1s var(--ph-ease)}@media(hover:hover)and (pointer:fine){.ph-tile:is(:hover,:has(:focus-visible)) .ph-tile__desc{opacity:1;filter:blur(0);transition-duration:.16s}}@media(hover:none){.ph-tile__desc{display:none}}@media(prefers-reduced-motion:reduce){.ph-tile__desc{filter:none;transition:opacity .1s linear}}
