:root{--pf-nav-offset:5.75rem;--background:#0a0a0a;--foreground:#ededed;--surface:#0a0a0a;--accent:#4ade80;--accent-hover:#22c55e;--header-shadow:#ffffff0f;--grid-line:#ffffff52;--icon-stroke-soft:#ffffff26;--icon-stroke-subtle:#ffffff17;--veil:#ffffff08;--veil-strong:#ffffff0d;--card-bg-top:#ffffff09;--card-border:#ffffff14;--card-bg-bottom:#080808;--card-shadow-strong:#000000d9;--project-panel-bg:#00000059;--project-panel-ring:#ffffff0f;--photo-bg:#0003;--text-muted:#edededb8;--text-subtle:#ededed8c;--text-faint:#ededed59;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (min-width:640px){:root{--pf-nav-offset:6.5rem}}@media (min-width:768px){:root{--pf-nav-offset:7.25rem}}html[data-theme=light]{--background:#fbfbfd;--foreground:#0a0a0a;--surface:#fff;--header-shadow:#00000014;--grid-line:#0000001f;--icon-stroke-soft:#0000002e;--icon-stroke-subtle:#0000001a;--accent:#0f8a3f;--accent-hover:#0c7636;--veil:#00000008;--veil-strong:#0000000d;--card-bg-top:#00000008;--card-border:#00000014;--card-bg-bottom:#f3f4f6;--card-shadow-strong:#00000038;--project-panel-bg:#0000000a;--project-panel-ring:#0000000f;--photo-bg:#00000008;--text-muted:#374151;--text-subtle:#6b7280;--text-faint:#9ca3af}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.pf-about-photo-frame{background-color:var(--photo-bg)}html[data-theme=light] .pf-about-photo-frame{background-color:#000}.pf-theme-toggle .pf-theme-icon-sun{display:none}.pf-theme-toggle .pf-theme-icon-moon,html[data-theme=light] .pf-theme-toggle .pf-theme-icon-sun{display:block}html[data-theme=light] .pf-theme-toggle .pf-theme-icon-moon{display:none}
html{font-size:100%}@media (max-width:639px){html{font-size:93.75%}}body{background:var(--background);color:var(--foreground);font-family:var(--font-dm-mono), ui-monospace, monospace}.pf-skip-link{z-index:10001;clip-path:inset(100%);padding:.75rem 1rem;position:absolute;top:0;left:0;overflow:hidden}.pf-skip-link:focus,.pf-skip-link:focus-visible{clip-path:inset(0%);border:1px solid var(--accent);background:var(--surface);font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent);border-radius:.375rem;outline:none;font-size:.875rem;position:fixed;top:1rem;left:1rem;overflow:visible}.pf-font-display{font-family:var(--font-dm-serif), ui-serif, Georgia, serif}
.pf-nav{z-index:100;border-bottom:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--surface);box-shadow:0 1px 0 0 var(--header-shadow);position:fixed;top:0;left:0;right:0}.pf-nav-inner{z-index:101;width:100%;min-width:0;max-width:1800px;padding-bottom:1rem;padding-left:1rem;padding-right:1rem;padding-top:max(1rem, env(safe-area-inset-top,0px));grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem .75rem;margin-left:auto;margin-right:auto;display:grid;position:relative}@media (min-width:640px){.pf-nav-inner{padding-bottom:1.25rem;padding-left:2rem;padding-right:2rem;padding-top:max(1.5rem, env(safe-area-inset-top,0px));gap:.625rem 1rem}}@media (min-width:768px){.pf-nav-inner{padding-bottom:1.5rem;padding-left:3rem;padding-right:3rem;padding-top:max(1.75rem, env(safe-area-inset-top,0px));row-gap:.75rem}}@media (max-width:899px){.pf-nav-inner{grid-template-rows:1fr;row-gap:0}}@media (min-width:1600px){.pf-nav-inner{grid-template-rows:1fr;grid-template-columns:auto minmax(0,1fr) auto;gap:0 1rem;padding:2.5rem 5rem 2rem}}.pf-nav-logo-cell{grid-area:1/1;justify-self:start;min-width:0}.pf-nav-list{flex-wrap:wrap;grid-area:2/1/auto/-1;justify-content:center;align-self:center;row-gap:.25rem;max-width:100%;margin:0;padding:0;list-style:none;display:none}@media (min-width:1045px){.pf-nav-list{column-gap:2rem;display:flex}}@media (min-width:640px) and (max-width:1599px){.pf-nav-list{column-gap:1.25rem}}@media (min-width:768px) and (max-width:1599px){.pf-nav-list{column-gap:1.75rem}}@media (min-width:1024px) and (max-width:1599px){.pf-nav-list{column-gap:2rem}}@media (min-width:1600px){.pf-nav-list{flex-wrap:nowrap;grid-area:1/2;justify-content:center;column-gap:2.5rem}}.pf-nav-actions{flex-shrink:0;grid-area:1/2;justify-self:end;align-items:center;gap:.375rem;display:flex}@media (min-width:640px){.pf-nav-actions{gap:.5rem}}@media (min-width:1600px){.pf-nav-actions{grid-area:1/3;gap:.75rem}}.pf-nav-btn{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;color:var(--text-subtle);background:0 0;border:none;border-radius:.125rem;padding:.25rem;font-size:11px;font-weight:500;transition:color .2s}a.pf-nav-btn{text-decoration:none;display:inline-block}.pf-nav-btn:hover{color:var(--foreground)}.pf-nav-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:2px}.pf-nav-btn-active{color:var(--accent)}@media (min-width:640px){.pf-nav-btn{letter-spacing:.16em;padding:.5rem .375rem;font-size:13px}}@media (min-width:768px){.pf-nav-btn{font-size:.875rem}}@media (min-width:1600px){.pf-nav-btn{letter-spacing:.18em;padding-top:.5rem;padding-bottom:.5rem;font-size:.875rem}.pf-nav-btn:focus-visible{outline-offset:4px}}@media (min-width:1024px) and (min-width:1600px){.pf-nav-btn{letter-spacing:.2em;font-size:15px}}.pf-nav-admin-link{white-space:nowrap;border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background-color:color-mix(in srgb, var(--accent) 10%, transparent);height:2.75rem;font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.08em;color:var(--accent);border-radius:.375rem;justify-content:center;align-items:center;padding:0 .75rem;font-size:.75rem;font-weight:500;text-decoration:none;transition:border-color .2s,background-color .2s;display:inline-flex}.pf-nav-admin-link:hover{border-color:color-mix(in srgb, var(--accent) 60%, transparent);background-color:color-mix(in srgb, var(--accent) 20%, transparent)}.pf-nav-admin-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:4px}@media (min-width:400px){.pf-nav-admin-link{padding-left:.875rem;padding-right:.875rem}}@media (min-width:640px){.pf-nav-admin-link{letter-spacing:.1em;padding:0 1rem;font-size:.875rem}}.pf-nav-mailto{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);background-color:var(--veil);font-family:var(--font-dm-mono), ui-monospace, monospace;color:color-mix(in srgb, var(--foreground) 75%, transparent);border-radius:.375rem;align-items:center;padding:.5rem .625rem;font-size:.75rem;font-weight:500;text-decoration:none;transition:border-color .2s,background-color .2s,color .2s;display:none}.pf-nav-mailto:hover{border-color:color-mix(in srgb, var(--accent) 50%, transparent);background-color:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent)}.pf-nav-mailto:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:4px}@media (min-width:1045px){.pf-nav-mailto{display:inline-flex}}@media (min-width:640px){.pf-nav-mailto{padding:.625rem 1rem;font-size:.875rem}}.pf-nav-menu-toggle{touch-action:manipulation;border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--veil);width:2.75rem;height:2.75rem;color:color-mix(in srgb, var(--foreground) 80%, transparent);cursor:pointer;border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .2s,color .2s;display:flex}.pf-nav-menu-toggle:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-nav-menu-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:2px}@media (min-width:1045px){.pf-nav-menu-toggle{display:none}}.pf-nav-mobile-panel{z-index:99;background-color:color-mix(in srgb, var(--surface) 98%, transparent);padding:2.5rem 2rem;padding-top:calc(5.75rem + env(safe-area-inset-top,0px));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}@media (min-width:1045px){.pf-nav-mobile-panel{display:none}}.pf-nav-mobile-list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.pf-nav-mobile-btn{text-align:left;width:100%;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.2em;cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:.375rem;padding:1rem 0;font-size:.75rem;font-weight:500}a.pf-nav-mobile-btn{text-decoration:none;display:block}.pf-nav-mobile-btn-active{color:var(--accent)}.pf-nav-mobile-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:2px}@media (min-width:640px){.pf-nav-mobile-btn{font-size:.875rem}}.pf-nav-mobile-mailto{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);background-color:var(--veil);width:100%;font-family:var(--font-dm-mono), ui-monospace, monospace;color:color-mix(in srgb, var(--foreground) 90%, transparent);border-radius:.375rem;justify-content:center;align-items:center;margin-top:1.5rem;padding:.875rem 1.25rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:border-color .2s,background-color .2s,color .2s;display:inline-flex}.pf-nav-mobile-mailto:hover{border-color:color-mix(in srgb, var(--accent) 50%, transparent);background-color:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent)}.pf-nav-mobile-mailto:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:2px}.pf-theme-toggle{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--veil);width:2.75rem;height:2.75rem;color:color-mix(in srgb, var(--foreground) 80%, transparent);cursor:pointer;border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:border-color .2s,color .2s;display:flex;position:relative}.pf-theme-toggle:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-theme-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:2px}.pf-theme-toggle-icons{pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;display:inline-flex;position:relative}.pf-theme-toggle-icon{position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.pf-theme-toggle-icon-sun{width:1.25rem;height:1.25rem}.pf-theme-toggle-icon-moon{width:1rem;height:1rem}.pf-footer{border-top:1px solid color-mix(in srgb, var(--foreground) 8%, transparent);padding:clamp(2rem,5vw,3rem) 1rem clamp(1.5rem,3vw,2rem)}@media (min-width:640px){.pf-footer{padding-left:2rem;padding-right:2rem}}@media (min-width:768px){.pf-footer{padding-left:3rem;padding-right:3rem}}@media (min-width:1024px){.pf-footer{padding-left:clamp(2rem,5vw,5rem);padding-right:clamp(2rem,5vw,5rem)}}.pf-footer-inner{flex-direction:column;gap:clamp(1.75rem,4vw,2.5rem);max-width:80rem;margin-left:auto;margin-right:auto;display:flex}.pf-footer-grid{text-align:left;grid-template-columns:1fr;gap:2rem 1.75rem;width:100%;display:grid}@media (min-width:640px){.pf-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-footer-col--brand{grid-column:1/-1}}@media (min-width:1024px){.pf-footer-grid{grid-template-columns:minmax(11rem,1.15fr) repeat(3,minmax(0,1fr));align-items:start;gap:2rem 2.25rem}.pf-footer-col--brand{grid-column:auto}}.pf-footer-col{min-width:0}.pf-footer-col-title{font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin:0 0 .85rem;padding:0;font-size:.65rem;font-weight:600}.pf-footer-col-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.pf-footer-col-link{color:color-mix(in srgb, var(--foreground) 88%, transparent);font-size:.9rem;line-height:1.45;text-decoration:none;transition:color .16s;display:inline-block}.pf-footer-col-link:hover{color:var(--accent)}.pf-footer-col-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:3px;border-radius:2px}.pf-footer-col-link--admin{color:var(--text-subtle);margin-top:.35rem;font-size:.8rem}.pf-footer-col-link--admin:hover{color:var(--accent)}.pf-footer-col--brand{border-bottom:1px solid color-mix(in srgb, var(--foreground) 8%, transparent);padding-bottom:.25rem}@media (min-width:1024px){.pf-footer-col--brand{border-bottom:none;padding-bottom:0;padding-right:1rem}}.pf-footer-brand-name{font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--foreground);margin:0 0 .35rem;font-size:.75rem;font-weight:600}.pf-footer-brand-author{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);margin:0 0 .35rem;font-size:clamp(1.05rem,2vw,1.2rem);font-weight:600}.pf-footer-brand-tag{color:var(--text-subtle);max-width:16rem;margin:0;font-size:.8rem;line-height:1.45}.pf-footer-col--legal{min-width:0}.pf-footer-social-row{flex-wrap:wrap;align-items:center;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.pf-footer-social-link{width:2.5rem;height:2.5rem;color:var(--text-subtle);border-radius:.375rem;justify-content:center;align-items:center;transition:color .16s,background-color .16s;display:inline-flex}.pf-footer-social-link:hover{color:color-mix(in srgb, var(--foreground) 92%, transparent);background-color:color-mix(in srgb, var(--foreground) 6%, transparent)}.pf-footer-social-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:2px}.pf-footer-social-icon{width:1.25rem;height:1.25rem}.pf-footer-bar{border-top:1px solid color-mix(in srgb, var(--foreground) 6%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 1.5rem;margin-top:.25rem;padding-top:1.25rem;display:flex}.pf-footer-bar-social{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem .65rem;display:flex}.pf-footer-bar .pf-footer-social-row{gap:.2rem}.pf-footer-bar .pf-footer-social-link{width:2.25rem;height:2.25rem}.pf-footer-bar .pf-footer-social-icon{width:1.1rem;height:1.1rem}.pf-footer-copy{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase;text-align:center;flex:auto;min-width:min(100%,14rem);margin:0;font-size:.65rem}@media (min-width:640px){.pf-footer-copy{text-align:left}}@media (max-width:639px){.pf-footer-bar{text-align:center;flex-direction:column;align-items:center}.pf-footer-bar-social{justify-content:center}}.pf-root-layout{flex-direction:column;min-height:100%;display:flex}
.pf-min-h-screen{min-height:100vh}.pf-bg-surface{background-color:var(--surface);color:var(--foreground)}.pf-text-foreground{color:var(--foreground)}.pf-text-muted{color:var(--text-muted)}.pf-text-subtle{color:var(--text-subtle)}.pf-text-faint{color:var(--text-faint)}.pf-text-accent{color:var(--accent)}.pf-border-foreground-5{border-color:color-mix(in srgb, var(--foreground) 5%, transparent)}.pf-border-foreground-10{border-color:color-mix(in srgb, var(--foreground) 10%, transparent)}.pf-border-foreground-15{border-color:color-mix(in srgb, var(--foreground) 15%, transparent)}.pf-border-foreground-20{border-color:color-mix(in srgb, var(--foreground) 20%, transparent)}.pf-border-foreground-25{border-color:color-mix(in srgb, var(--foreground) 25%, transparent)}.pf-bg-veil{background-color:var(--veil)}.pf-focus-ring:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:2px}.pf-focus-ring-offset-4:focus-visible{outline-offset:4px}@keyframes pf-spin{to{transform:rotate(360deg)}}.pf-spinner{border:2px solid color-mix(in srgb, var(--accent) 35%, transparent);border-top-color:#0000;border-radius:9999px;flex-shrink:0;width:1.125rem;height:1.125rem;animation:1s linear infinite pf-spin}@media (prefers-reduced-motion:reduce){.pf-spinner{border-top-color:color-mix(in srgb, var(--accent) 35%, transparent);animation:none}}@keyframes pf-pulse{0%,to{opacity:1}50%{opacity:.4}}.pf-animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pf-pulse}@media (prefers-reduced-motion:reduce){.pf-animate-pulse{animation:none}}.pf-opacity-transition{transition:opacity .3s}.pf-opacity-0{opacity:0}.pf-opacity-100{opacity:1}.pf-rec-avatar-a{background-color:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.pf-rec-avatar-b{background-color:color-mix(in srgb, var(--foreground) 10%, transparent);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.pf-rec-avatar-c{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, transparent);background-color:#6366f11f}.pf-rec-avatar-d{background-color:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.pf-scroll-reveal{transition:opacity .65s ease-out,transform .65s ease-out}.pf-scroll-reveal-hidden{opacity:0;transform:translateY(2rem)}.pf-scroll-reveal-visible{opacity:1;transform:translateY(0)}.pf-cursor{pointer-events:none;z-index:9999;will-change:transform;position:fixed;top:0;left:0}@media (max-width:767px){.pf-cursor{display:none}}.pf-cursor-inner{position:relative;transform:translate(-50%,-50%)}.pf-cursor-arm{background-color:var(--accent);height:1px;transition:width .15s ease-out;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pf-cursor-arm-sm{width:.875rem}.pf-cursor-arm-lg{width:1.25rem}.pf-cursor-stem{background-color:var(--accent);width:1px;transition:height .15s ease-out;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pf-cursor-stem-sm{height:.875rem}.pf-cursor-stem-lg{height:1.25rem}.pf-cursor-dot{background-color:var(--accent);width:3px;height:3px;box-shadow:0 0 12px color-mix(in srgb, var(--accent) 50%, transparent);display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pf-multiline-p{white-space:normal}@media (min-width:768px){.pf-multiline-p{white-space:pre-line}}.pf-multiline-p+.pf-multiline-p{margin-top:.75rem}.pf-pre-line{white-space:pre-line}
html{scroll-padding-top:9rem}@media (min-width:640px){html{scroll-padding-top:10rem}}@media (min-width:768px) and (max-width:1599px){html{scroll-padding-top:11rem}}@media (min-width:1600px){html{scroll-padding-top:8.5rem}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}::-webkit-scrollbar{width:2px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--accent)}@media (prefers-reduced-motion:no-preference){@media (min-width:769px){body.pf-cursor-custom *{cursor:none!important}}}@keyframes rt-cursor-blink{0%,45%{opacity:1}50%,to{opacity:.12}}@keyframes rt-letters-pulse{0%,to{text-shadow:0 0 #0000;filter:brightness()}50%{text-shadow:0 0 14px #4ade8047;filter:brightness(1.08)}}.pf-logo-letters{animation:5s ease-in-out infinite rt-letters-pulse}.pf-logo-cursor{margin-left:.02em;animation:1.05s step-end infinite rt-cursor-blink}.pf-logo-btn:hover .pf-logo-cursor{animation-duration:.65s}@media (prefers-reduced-motion:reduce){.pf-logo-letters{text-shadow:none;filter:none;animation:none}.pf-logo-cursor{opacity:.45;animation:none}}
html{--bs-body-bg:var(--background);--bs-body-color:var(--foreground);--bs-secondary-color:var(--text-muted);--bs-tertiary-color:var(--text-subtle);--bs-border-color:var(--card-border);--bs-link-color:var(--accent);--bs-link-hover-color:var(--accent-hover);--bs-primary:var(--accent);--bs-primary-rgb:74, 222, 128;--bs-font-monospace:var(--font-dm-mono), ui-monospace, monospace}html[data-theme=light]{--bs-primary-rgb:15, 138, 63}body{background-color:var(--background);color:var(--foreground)}.pf-body-font{font-family:var(--font-dm-mono), ui-monospace, monospace}a.pf-link-reset{color:inherit;text-decoration:none}a.pf-link-reset:hover{color:inherit}
.pf-admin-page{max-width:64rem;color:var(--foreground);flex-direction:column;gap:1.5rem;margin-left:auto;margin-right:auto;padding:2.5rem 2rem;display:flex}.pf-admin-page-narrow{max-width:42rem}.pf-admin-page-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.pf-admin-page-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.pf-admin-page-intro{color:var(--text-subtle);margin-top:.5rem;font-size:.875rem;font-weight:300}.pf-admin-grid-cards{gap:1rem;display:grid}@media (max-width:639.98px){.pf-admin-page{padding:1.5rem 1rem}.pf-admin-page-header{flex-direction:column;align-items:stretch}.pf-admin-page-header-actions{flex-wrap:nowrap;justify-content:flex-start;align-items:flex-start;width:100%}.pf-admin-page-header-actions>*{width:auto}.pf-admin-page-header-actions .pf-theme-toggle{flex:0 0 2.75rem;width:2.75rem;min-width:2.75rem;height:2.75rem;min-height:2.75rem;padding:0}.pf-admin-page-header-actions .pf-admin-menu-bar{flex-wrap:nowrap;flex:auto;min-width:0}.pf-admin-page-header-actions .pf-admin-menu-link,.pf-admin-page-header-actions .pf-admin-menu-trigger{letter-spacing:.08em;white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;justify-content:center;min-width:0;padding:0 .5rem;font-size:.68rem;overflow:hidden}.pf-admin-page-header-actions .pf-admin-menu-link{flex:none}.pf-admin-page-header-actions .pf-admin-menu-trigger{flex:auto}}@media (min-width:640px){.pf-admin-grid-cards{grid-template-columns:repeat(2,1fr)}}.pf-admin-card-link{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--veil);color:inherit;border-radius:.375rem;padding:1.25rem;text-decoration:none;transition:border-color .2s,background-color .2s;display:block}.pf-admin-card-link:hover{border-color:color-mix(in srgb, var(--accent) 35%, transparent);background-color:var(--veil-strong)}.pf-admin-card-link p{color:var(--text-muted);margin-top:.5rem;font-size:.875rem}.pf-admin-menu-bar{align-items:center;gap:.5rem;display:flex}.pf-admin-menu-link,.pf-admin-toolbar-link{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--veil);height:2.75rem;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.16em;color:var(--text-subtle);border-radius:.375rem;align-items:center;padding:0 1rem;font-size:.75rem;text-decoration:none;transition:color .2s,border-color .2s;display:inline-flex}.pf-admin-menu-link:hover,.pf-admin-toolbar-link:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-admin-menu-link:focus-visible,.pf-admin-toolbar-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:2px}.pf-admin-menu-trigger{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--veil);height:2.75rem;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.16em;color:var(--text-subtle);cursor:pointer;border-radius:.375rem;align-items:center;padding:0 1rem;font-size:.75rem;transition:color .2s,border-color .2s;display:inline-flex}.pf-admin-menu-trigger:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-admin-menu-trigger:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:2px}.pf-admin-menu-dropdown{z-index:20;border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--surface);min-width:14rem;padding:.5rem;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 25px #00000026}.pf-admin-menu-dropdown a{color:var(--text-subtle);border:1px solid #0000;padding:.5rem .75rem;font-size:.875rem;text-decoration:none;display:block}.pf-admin-menu-dropdown a:hover{border-color:color-mix(in srgb, var(--foreground) 20%, transparent);color:var(--foreground)}.pf-admin-menu-dropdown a+a,.pf-admin-menu-dropdown button{margin-top:.25rem}.pf-admin-menu-logout{text-align:left;color:#f87171;cursor:pointer;background:0 0;border:1px solid #0000;width:100%;padding:.5rem .75rem;font-size:.875rem}.pf-admin-menu-logout:hover{border-color:#f871714d}.pf-admin-menu-relative{position:relative}.pf-subpage{background-color:var(--surface);color:var(--foreground);min-height:100vh}.pf-subpage-nav-spacer{height:var(--pf-nav-offset)}.pf-subpage-bar{box-sizing:border-box;padding:6rem 1rem 1rem}@media (min-width:640px){.pf-subpage-bar{padding-left:2rem;padding-right:2rem}}@media (min-width:768px){.pf-subpage-bar{padding-left:5rem;padding-right:5rem}}.pf-subpage-bar-inner{justify-content:space-between;align-items:center;gap:1.25rem;width:100%;max-width:80rem;margin-left:auto;margin-right:auto;display:flex}.pf-subpage-left{flex-direction:column;flex:1;align-items:flex-start;gap:.625rem;min-width:0;display:flex}.pf-subpage-right{flex-shrink:0}.pf-subpage-back{font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);font-size:.75rem;text-decoration:none;transition:color .2s;display:inline-block}.pf-subpage-back:hover{color:var(--accent)}.pf-subpage-back:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:4px}.pf-subpage-nav{flex-wrap:wrap;gap:.5rem .875rem;display:flex}.pf-subpage-nav-link{font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--text-subtle);font-size:.7rem;text-decoration:none;transition:color .2s}.pf-subpage-nav-link:hover{color:var(--accent)}.pf-subpage-nav-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:3px}@media (max-width:767.98px){.pf-subpage-nav-link:nth-child(n+4){display:none}}.pf-admin-field-label{color:var(--text-subtle);margin-bottom:.25rem;font-size:.75rem;display:block}.pf-admin-input,.pf-admin-textarea{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--surface);width:100%;color:var(--foreground);border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem}.pf-admin-textarea{resize:vertical;min-height:6rem}.pf-admin-btn-primary{background-color:var(--accent);color:#000;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;border:none;border-radius:.375rem;justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.75rem;display:inline-flex}.pf-admin-btn-primary:hover{background-color:var(--accent-hover)}.pf-admin-btn-outline{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:.375rem;justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.875rem;display:inline-flex}.pf-admin-panel{border:1px solid color-mix(in srgb, var(--foreground) 12%, transparent);background-color:var(--veil);border-radius:.5rem;padding:1rem}.pf-admin-stack{flex-direction:column;gap:1rem;display:flex}.pf-admin-muted{color:var(--text-muted);font-size:.875rem}.pf-admin-danger{color:#f87171}.pf-admin-main{max-width:72rem;color:var(--foreground);flex-direction:column;gap:1.25rem;margin-left:auto;margin-right:auto;padding:3rem 2rem;display:flex}.pf-admin-main-loading{color:var(--text-subtle);font-size:.875rem}.pf-admin-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.pf-admin-alert-error{color:#fca5a5;background-color:#ef44441a;border:1px solid #ef444459;border-radius:.375rem;padding:.75rem 1rem;font-size:.875rem}.pf-admin-section-panel{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);border-radius:.375rem;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.pf-admin-input-full{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);width:100%;color:var(--foreground);background:0 0;border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem}.pf-admin-input-full:disabled{opacity:.5}select.pf-admin-input-full,select.pf-admin-input{cursor:pointer;background-color:var(--surface);color:var(--foreground);accent-color:var(--accent)}html[data-theme=dark] select.pf-admin-input-full,html[data-theme=dark] select.pf-admin-input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=light] select.pf-admin-input-full,html[data-theme=light] select.pf-admin-input{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}select.pf-admin-input-full option,select.pf-admin-input option{background-color:var(--surface);color:var(--foreground)}select.pf-admin-input-full:focus-visible,select.pf-admin-input:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:2px}@supports (appearance:base-select){select.pf-admin-input-full,select.pf-admin-input{appearance:base-select}select.pf-admin-input-full::picker(select){appearance:base-select}select.pf-admin-input::picker(select){appearance:base-select}select.pf-admin-input-full::picker(select){background:var(--surface);border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);border-radius:.375rem}select.pf-admin-input::picker(select){background:var(--surface);border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);border-radius:.375rem}select.pf-admin-input-full option,select.pf-admin-input option{padding:.45rem .65rem}select.pf-admin-input-full option:hover,select.pf-admin-input-full option:focus-visible,select.pf-admin-input option:hover,select.pf-admin-input option:focus-visible{background-color:color-mix(in srgb, var(--accent) 30%, var(--surface));color:var(--foreground)}select.pf-admin-input-full option:checked,select.pf-admin-input option:checked{background-color:color-mix(in srgb, var(--accent) 14%, var(--surface));color:var(--foreground)}}.pf-admin-input-xs{font-size:.75rem}.pf-admin-textarea-hero{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);width:100%;max-width:64ch;color:var(--text-muted);background:0 0;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;font-weight:300;line-height:1.7}@media (min-width:640px){.pf-admin-textarea-hero{font-size:17px}}.pf-admin-textarea-intro{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);width:100%;max-width:42rem;color:var(--text-muted);background:0 0;border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem;font-weight:300;line-height:1.625}@media (min-width:768px){.pf-admin-textarea-intro{font-size:15px}}.pf-admin-hint{color:var(--text-subtle);font-size:.75rem}.pf-admin-hint strong,.pf-admin-hint .pf-admin-hint-strong{color:var(--text-muted)}.pf-admin-skills-grid{gap:1rem;display:grid}@media (min-width:768px){.pf-admin-skills-grid{grid-template-columns:repeat(3,1fr)}}.pf-admin-skill-column{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);flex-direction:column;gap:.75rem;padding:.75rem;transition:border-color .2s,background-color .2s,box-shadow .2s;display:flex}.pf-admin-skill-column-drop{border-color:color-mix(in srgb, var(--accent) 55%, transparent);background-color:color-mix(in srgb, var(--accent) 5%, transparent);box-shadow:0 0 0 1px #2dd4bf33}.pf-admin-skill-column-title{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb, var(--accent) 90%, transparent);font-size:.75rem}.pf-admin-skill-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.pf-admin-skill-row{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--surface);align-items:center;gap:.5rem;padding:.25rem .5rem;transition:all .2s;display:flex}.pf-admin-skill-row-dragging{border-color:color-mix(in srgb, var(--accent) 45%, transparent);opacity:.75;transform:scale(.98)}.pf-admin-skill-row:hover{border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.pf-admin-skill-drag{cursor:grab;color:var(--text-faint);font-size:.75rem}.pf-admin-skill-input{width:100%;color:var(--foreground);background:0 0;border:none;font-size:.875rem}.pf-admin-icon-btn{color:#f87171;cursor:pointer;background:0 0;border:none;font-size:.875rem;transition:transform .15s,color .15s}.pf-admin-icon-btn:hover{color:#fca5a5;transform:scale(1.1)}.pf-admin-add-row{gap:.5rem;display:flex}.pf-admin-btn-accent-outline{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);cursor:pointer;background:0 0;padding:.25rem .75rem;font-size:.75rem;transition:transform .15s,background-color .15s}.pf-admin-btn-accent-outline:hover{background-color:color-mix(in srgb, var(--accent) 10%, transparent);transform:translateY(-1px)}.pf-admin-btn-save{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);cursor:pointer;background:0 0;padding:.5rem 1rem;font-size:.75rem;transition:background-color .2s}.pf-admin-btn-save:hover:not(:disabled){background-color:color-mix(in srgb, var(--accent) 10%, transparent)}.pf-admin-btn-save:disabled{cursor:not-allowed;opacity:.5}.pf-admin-cert-block{flex-direction:column;gap:.5rem;padding-top:.5rem;display:flex}.pf-admin-cert-heading{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);font-size:.75rem}.pf-admin-about-grid{max-width:80rem;margin-left:auto;margin-right:auto}@media (min-width:768px){.pf-admin-about-grid{grid-template-columns:repeat(2,1fr);gap:5rem;display:grid}}.pf-admin-copy-field{width:100%;max-width:64ch}.pf-admin-access-main{max-width:28rem;color:var(--foreground);margin-left:auto;margin-right:auto;padding:3rem 2rem}.pf-admin-access-wide{max-width:42rem}.pf-admin-profile-main{max-width:42rem;color:var(--foreground);flex-direction:column;gap:1.5rem;margin-left:auto;margin-right:auto;padding:3rem 2rem;display:flex}.pf-projects-page{border-top:1px solid color-mix(in srgb, var(--foreground) 5%, transparent);box-sizing:border-box;padding:4rem 1rem}@media (min-width:640px){.pf-projects-page{padding-left:2rem;padding-right:2rem}}@media (min-width:768px){.pf-projects-page{padding-left:5rem;padding-right:5rem}}.pf-projects-page-title{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);margin-bottom:1rem;font-size:2.25rem}@media (min-width:768px){.pf-projects-page-title{font-size:3rem}}.pf-projects-page-intro{max-width:48rem;color:var(--text-muted);margin-bottom:3rem;font-size:.95rem;font-weight:300;line-height:1.7}.pf-projects-page-intro a{color:var(--accent);text-underline-offset:.2em;font-weight:400;text-decoration:underline;text-decoration-thickness:1px}.pf-projects-page-intro a:hover{color:var(--accent-hover)}.pf-projects-page-list{flex-direction:column;gap:2.5rem;margin:0;padding:0;list-style:none;display:flex}.pf-projects-page-item{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);padding:1.5rem;transition:border-color .2s}.pf-projects-page-item:hover{border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.pf-projects-page-link{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);font-size:1.5rem;text-decoration:none;transition:color .2s}.pf-projects-page-link:hover{color:var(--accent)}.pf-projects-page-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:4px}.pf-projects-page-subtitle{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase;margin-top:.5rem;font-size:11px}.pf-projects-page-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:1rem;font-size:.875rem;font-weight:300;line-height:1.625;display:-webkit-box;overflow:hidden}.pf-projects-page-more{margin-top:1rem}.pf-projects-page-more a{font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:.75rem;text-decoration:none}.pf-projects-page-more a:hover{text-decoration:underline}.pf-subpage-hero{border-top:1px solid color-mix(in srgb, var(--foreground) 5%, transparent);border-bottom:1px solid color-mix(in srgb, var(--foreground) 7%, transparent);box-sizing:border-box;margin-bottom:1.5rem;padding:3.25rem 1rem 2rem}@media (min-width:640px){.pf-subpage-hero{padding-left:2rem;padding-right:2rem}}@media (min-width:768px){.pf-subpage-hero{padding:4rem 5rem 2.5rem}}.pf-subpage-hero-kicker{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:.75rem;font-size:10px}.pf-subpage-hero-title{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);margin-bottom:.75rem;font-size:2rem}@media (min-width:768px){.pf-subpage-hero-title{font-size:2.75rem}}.pf-subpage-hero-lead{max-width:48rem;color:var(--text-muted);font-size:.95rem;font-weight:300;line-height:1.7}.pf-subpage-hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.pf-project-detail{border-top:1px solid color-mix(in srgb, var(--foreground) 5%, transparent);max-width:56rem;margin-left:auto;margin-right:auto;padding:4rem 2rem}@media (min-width:768px){.pf-project-detail{padding-left:5rem;padding-right:5rem}}.pf-project-detail-kicker{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:1rem;font-size:10px}.pf-project-detail-title{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);margin-bottom:.5rem;font-size:2.25rem}@media (min-width:768px){.pf-project-detail-title{font-size:3rem}}.pf-project-detail-subtitle{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--text-subtle);letter-spacing:.1em;text-transform:uppercase;margin-bottom:2.5rem;font-size:.875rem}.pf-project-detail-gallery{margin-bottom:2rem}.pf-project-detail-gallery-grid{grid-template-columns:1fr;gap:.875rem;display:grid}@media (min-width:768px){.pf-project-detail-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}}.pf-project-detail-gallery-item{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);border-radius:.75rem;overflow:hidden}.pf-project-detail-gallery-media{aspect-ratio:16/9;object-fit:cover;background-color:#000;width:100%;display:block}.pf-project-detail-body{color:var(--text-muted);flex-direction:column;gap:2rem;font-weight:300;line-height:1.625;display:flex}.pf-project-detail-h2{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.75rem;font-size:10px}.pf-project-detail-quote{border-left:1px solid color-mix(in srgb, var(--accent) 20%, transparent);padding-left:1rem;font-style:italic}.pf-project-detail-learning{font-style:italic}.pf-project-detail-tags{border-top:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);flex-wrap:wrap;gap:.5rem;margin-top:2.5rem;padding-top:2rem;display:flex}.pf-project-detail-tag{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--text-subtle);border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);padding:.25rem .5rem;font-size:10px}.pf-project-detail-actions{flex-wrap:wrap;gap:1rem;margin-top:2.5rem;display:flex}.pf-project-detail-btn-accent{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);padding:.5rem 1rem;font-size:.75rem;text-decoration:none;transition:background-color .2s;display:inline-flex}.pf-project-detail-btn-accent:hover{background-color:color-mix(in srgb, var(--accent) 10%, transparent)}.pf-project-detail-btn-accent:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:4px}.pf-project-detail-btn-muted{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--text-subtle);letter-spacing:.1em;text-transform:uppercase;border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);padding:.5rem 1rem;font-size:.75rem;text-decoration:none;transition:border-color .2s;display:inline-flex}.pf-project-detail-btn-muted:hover{border-color:color-mix(in srgb, var(--foreground) 40%, transparent)}.pf-project-detail-btn-muted:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:4px}.pf-projects-page-empty{color:var(--text-subtle);margin-top:1.5rem;font-size:.875rem}.pf-projects-page-empty a{color:inherit;text-decoration:underline}.pf-admin-page-4xl{max-width:56rem}.pf-admin-rec-list-stack{flex-direction:column;gap:2rem;display:flex}.pf-admin-rec-card{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);border-radius:.375rem;flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.pf-admin-rec-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.pf-admin-rec-mono-btn{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);cursor:pointer;background:0 0;border-radius:.25rem;padding:.25rem .5rem;font-size:10px;transition:border-color .2s,color .2s}.pf-admin-rec-mono-btn:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-admin-rec-mono-btn:disabled{opacity:.4;cursor:not-allowed}.pf-admin-rec-mono-btn-danger{color:#fca5a5;border-color:#ef44444d}.pf-admin-rec-mono-btn-danger:hover:not(:disabled){border-color:#f87171}.pf-admin-input-narrow{max-width:20rem}.pf-admin-textarea-short{resize:vertical;width:100%;min-height:4rem}.pf-admin-textarea-tall{resize:vertical;width:100%;min-height:12rem;line-height:1.625}.pf-admin-btn-dashed-add{border:1px dashed color-mix(in srgb, var(--foreground) 25%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);cursor:pointer;background:0 0;border-radius:.375rem;padding:.75rem 1rem;font-size:.75rem;transition:border-color .2s,color .2s}.pf-admin-btn-dashed-add:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-admin-btn-save-solid{background-color:var(--accent);color:#000;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;border:none;border-radius:.375rem;padding:.75rem 1.5rem;font-size:.75rem;transition:background-color .2s,opacity .2s}.pf-admin-btn-save-solid:hover:not(:disabled){background-color:color-mix(in srgb, var(--accent) 90%, #000)}.pf-admin-btn-save-solid:disabled{opacity:.4;cursor:not-allowed}.pf-admin-alert-error-panel{color:#fecaca;background:#ef44441a;border:1px solid #ef444466;border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem}.pf-admin-text-loading{color:var(--text-muted);font-size:.875rem}.pf-admin-saved-inline{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--accent);font-size:.75rem}.pf-admin-page-profile{max-width:42rem}.pf-admin-page-wide{max-width:80rem;padding:2rem 1.5rem}@media (min-width:768px){.pf-admin-page-wide{padding-left:2.5rem;padding-right:2.5rem}}.pf-admin-page-header-wrap{flex-wrap:wrap}.pf-admin-toolbar-actions{align-items:center;gap:.5rem;display:flex}.pf-admin-loading-main{max-width:64rem;color:var(--text-subtle);margin-left:auto;margin-right:auto;padding:2.5rem 1.5rem}.pf-admin-section-panel-stack{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);border-radius:.375rem;flex-direction:column;gap:1.5rem;padding:1.25rem;display:flex}@media (min-width:640px){.pf-admin-section-panel-stack{padding:1.5rem}}.pf-admin-two-col-layout{gap:1.5rem;display:grid}@media (min-width:1024px){.pf-admin-two-col-layout{grid-template-columns:1.1fr 1fr}}.pf-admin-label-field{flex-direction:column;gap:.5rem;font-size:.75rem;display:flex}.pf-admin-form-grid-two{gap:1.25rem;display:grid}@media (min-width:640px){.pf-admin-form-grid-two{grid-template-columns:repeat(2,1fr)}.pf-admin-form-grid-two .pf-admin-field-span-2{grid-column:1/-1}}.pf-admin-form-grid-two-align-end{align-items:end}.pf-admin-checkbox-inline{align-items:center;gap:.5rem;padding-bottom:.5rem;font-size:.75rem;display:inline-flex}@media (min-width:640px){.pf-admin-form-grid-two-align-end .pf-admin-checkbox-inline{justify-self:start}}.pf-admin-file-input{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);width:100%;color:var(--foreground);border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem}.pf-admin-file-input::file-selector-button{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);cursor:pointer;background:0 0;margin-right:.75rem;padding:.25rem .5rem;font-size:.75rem}.pf-admin-drop-zone{border:1px dashed color-mix(in srgb, var(--foreground) 25%, transparent);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.pf-admin-upload-pill{cursor:pointer;border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);padding:.375rem .75rem;font-size:11px;transition:border-color .2s,color .2s;display:inline-flex}.pf-admin-upload-pill:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-admin-hint-11{color:var(--text-subtle);font-size:11px}.pf-admin-hint-10{color:var(--text-faint);font-size:10px;line-height:1.375}.pf-admin-hint-caption{color:var(--text-subtle);font-size:10px;line-height:1.375}.pf-admin-code-tiny{font-size:10px;font-family:var(--font-dm-mono), ui-monospace, monospace}.pf-admin-stack-gap-6{flex-direction:column;gap:1.5rem;display:flex}.pf-admin-form-actions-wrap{border-top:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);flex-direction:column;gap:.75rem;margin-top:.5rem;padding-top:1.5rem;display:flex}.pf-admin-message-success{color:#86efac;font-size:.875rem}.pf-admin-alert-success{color:#86efac;background:#22c55e1a;border:1px solid #22c55e73;border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem}.pf-admin-btn-accent-action{border:1px solid color-mix(in srgb, var(--accent) 50%, transparent);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);cursor:pointer;background:0 0;padding:.5rem 1rem;font-size:.75rem;transition:background-color .2s}.pf-admin-btn-accent-action:hover{background-color:color-mix(in srgb, var(--accent) 10%, transparent)}.pf-admin-btn-muted-outline{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);cursor:pointer;background:0 0;padding:.5rem 1rem;font-size:.75rem;transition:border-color .2s}.pf-admin-btn-muted-outline:hover{border-color:color-mix(in srgb, var(--foreground) 30%, transparent)}.pf-admin-section-panel-list{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);border-radius:.375rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.pf-admin-list-create-wrap{border-top:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);margin-top:.25rem;padding-top:.75rem}.pf-admin-list-create-btn{width:100%}.pf-admin-project-list{flex-direction:column;gap:.75rem;padding-right:.25rem;display:flex}.pf-admin-project-row{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background:var(--surface);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.pf-admin-project-row-top{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.pf-admin-project-row-title{color:var(--foreground);font-size:.875rem;font-weight:600}.pf-admin-project-row-meta{color:var(--text-subtle);font-size:.75rem}.pf-admin-project-cover-thumb{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);object-fit:cover;flex-shrink:0;width:5rem;height:3.5rem}.pf-admin-btn-row{flex-wrap:wrap;gap:.5rem;display:flex}.pf-admin-btn-ghost-sm{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);cursor:pointer;background:0 0;padding:.25rem .5rem;font-size:11px;transition:border-color .2s,color .2s}.pf-admin-btn-ghost-sm:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-admin-btn-ghost-sm-danger{color:#fca5a5;border-color:#f8717166}.pf-admin-btn-ghost-sm-danger:hover{background-color:#ef44441a}.pf-admin-kicker-micro{text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);font-size:10px}.pf-admin-kicker-micro-accent{color:var(--accent)}.pf-admin-modal-backdrop-dark{z-index:50;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.pf-admin-modal-scroll-panel{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background:var(--surface);width:100%;max-width:56rem;max-height:92vh;padding:1.25rem;overflow:auto}.pf-admin-modal-top{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.pf-admin-modal-h3{color:var(--foreground);font-size:1.5rem;font-weight:600}@media (max-width:575.98px){.pf-admin-modal-backdrop-dark{padding:.5rem;padding-top:max(.5rem, env(safe-area-inset-top,0px));padding-bottom:max(.5rem, env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;align-items:flex-start;overflow-y:auto}.pf-admin-modal-scroll-panel{border-radius:.5rem;max-height:none;margin-bottom:.25rem;padding:1rem}.pf-admin-modal-h3{font-size:1.25rem}.pf-admin-modal-top{flex-direction:column;align-items:stretch;gap:.75rem}.pf-admin-close-ghost{align-self:flex-end}}@media (max-height:640px){.pf-admin-modal-scroll-panel{max-height:calc(100dvh - .75rem)}.pf-admin-preview-thumb{height:6rem}}@media (max-width:991.98px) and (orientation:landscape){.pf-admin-modal-backdrop-dark{justify-content:stretch;align-items:stretch;padding:0}.pf-admin-modal-scroll-panel{width:100vw;max-width:none;height:100dvh;max-height:none;padding:max(.5rem, env(safe-area-inset-top,0px)) max(.75rem, env(safe-area-inset-right,0px)) max(.5rem, env(safe-area-inset-bottom,0px)) max(.75rem, env(safe-area-inset-left,0px));border:none;border-radius:0;margin:0}.pf-admin-preview-thumb{height:24vh;min-height:8rem}}.pf-admin-close-ghost{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;color:inherit;background:0 0;padding:.25rem .75rem;font-size:.75rem}.pf-admin-preview-2col{gap:1.25rem;display:grid}@media (min-width:768px){.pf-admin-preview-2col{grid-template-columns:repeat(2,1fr)}}.pf-admin-preview-stack{flex-direction:column;gap:.75rem;display:flex}.pf-admin-preview-gallery-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.pf-admin-preview-thumb{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);object-fit:cover;width:100%;height:8rem}.pf-admin-video-item{flex-direction:column;gap:.35rem;display:flex}.pf-admin-video-fullscreen-btn{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);background:var(--veil);color:var(--text-subtle);font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:.3rem .45rem;font-size:10px}.pf-admin-video-fullscreen-btn:hover{border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent)}.pf-admin-preview-prose{color:var(--text-muted);flex-direction:column;gap:1rem;font-size:.875rem;display:flex}.pf-admin-preview-block-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);margin-bottom:.25rem;font-size:11px}.pf-admin-preview-block-label-accent{color:var(--accent)}.pf-admin-ul-disc{flex-direction:column;gap:.25rem;padding-left:1rem;list-style:outside;display:flex}.pf-admin-link-accent-underline{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.pf-admin-tag-chip{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);padding:.25rem .5rem;font-size:10px}.pf-admin-access-main{max-width:36rem;color:var(--foreground);flex-direction:column;gap:1.5rem;margin-left:auto;margin-right:auto;padding:3.5rem 2rem;display:flex}.pf-admin-access-main-loading{color:inherit}.pf-admin-access-section{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);border-radius:.375rem;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.pf-admin-access-subsection{flex-direction:column;gap:.75rem;display:flex}.pf-admin-access-actions-row{flex-wrap:wrap;align-items:center;gap:.75rem;padding-top:.25rem;display:flex}.pf-admin-access-nested{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--veil);border-radius:.375rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.pf-admin-btn-accent-mono{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);cursor:pointer;background:0 0;padding:.5rem 1rem;font-size:.75rem;transition:background-color .2s}.pf-admin-btn-accent-mono:hover:not(:disabled){background-color:color-mix(in srgb, var(--accent) 10%, transparent)}.pf-admin-btn-accent-mono:disabled{opacity:.6;cursor:not-allowed}.pf-admin-text-link-mono{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);cursor:pointer;background:0 0;border:none;font-size:.75rem;transition:color .2s}.pf-admin-text-link-mono:hover{color:var(--accent)}.pf-admin-back-link-bar{justify-content:center;padding-top:.5rem;display:flex}.pf-admin-back-link-pill{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--veil);height:2.75rem;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.16em;color:var(--text-subtle);border-radius:.375rem;align-items:center;padding:0 1rem;font-size:.75rem;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.pf-admin-back-link-pill:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-admin-back-link-pill:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:2px}.pf-admin-page-header-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.pf-admin-article-block{border:1px solid color-mix(in srgb, var(--foreground) 18%, transparent);background:color-mix(in srgb, var(--surface) 92%, transparent);border-radius:.75rem;padding:.9rem}.pf-admin-automation-stack{gap:1rem}.pf-admin-automation-section{gap:.75rem;padding:1rem 1.1rem}.pf-admin-automation-details>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.15rem 0 .5rem;list-style:none;display:flex}.pf-admin-automation-details>summary::-webkit-details-marker{display:none}.pf-admin-automation-details>summary:before{content:"▾";opacity:.7;font-size:.65rem;transition:transform .15s}.pf-admin-automation-details:not([open])>summary:before{transform:rotate(-90deg)}.pf-admin-automation-cred-status{background:color-mix(in srgb, var(--foreground) 4%, transparent);border:1px solid color-mix(in srgb, var(--foreground) 8%, transparent);border-radius:.375rem;padding:.5rem .65rem;font-size:.8rem;line-height:1.45}.pf-admin-automation-cred-grid{grid-template-columns:1fr;gap:.65rem 1rem;display:grid}@media (min-width:768px){.pf-admin-automation-cred-grid{grid-template-columns:1fr 1fr}}.pf-admin-automation-cred-field{flex-direction:column;gap:.3rem;display:flex}.pf-admin-automation-cred-row{flex-wrap:wrap;align-items:stretch;gap:.35rem;display:flex}.pf-admin-automation-cred-row .pf-admin-input-full{flex:10rem;min-width:0}.pf-admin-automation-import{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background:color-mix(in srgb, var(--foreground) 3%, transparent);border-radius:.375rem;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.6rem .85rem;display:flex}.pf-admin-automation-import-text{min-width:0;color:var(--text-subtle);flex:12rem;margin:0;font-size:.78rem;line-height:1.4}.pf-admin-automation-import-actions{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.pf-admin-automation-network-grid{grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:.4rem .75rem;display:grid}.pf-admin-automation-network-item{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);border-radius:.3rem;align-items:flex-start;gap:.35rem;padding:.35rem .5rem;font-size:.78rem;line-height:1.35;display:flex}.pf-admin-automation-network-item input{margin-top:.2rem}.pf-admin-automation-limit-banner{background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);border-radius:.35rem;padding:.45rem .65rem;font-size:.78rem;line-height:1.4}.pf-admin-automation-toolbar{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background:color-mix(in srgb, var(--foreground) 2.5%, transparent);border-radius:.375rem;flex-direction:column;gap:.45rem;padding:.6rem .75rem;display:flex}.pf-admin-automation-toolbar-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);margin:0;font-size:.65rem}.pf-admin-automation-toolbar-emojis{flex-wrap:wrap;gap:.2rem;display:flex}.pf-admin-automation-emoji-btn{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.25rem;padding:.2rem .32rem;font-size:1.05rem;line-height:1;transition:background .12s,border-color .12s}.pf-admin-automation-emoji-btn:hover{background:color-mix(in srgb, var(--foreground) 8%, transparent);border-color:color-mix(in srgb, var(--foreground) 12%, transparent)}.pf-admin-automation-toolbar-actions{flex-wrap:wrap;gap:.3rem;display:flex}.pf-admin-automation-count{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:.78rem}.pf-admin-automation-count strong{color:var(--accent);font-weight:500}.pf-admin-automation-count-warn{color:#f87171;font-weight:500}.pf-admin-automation-media-row{grid-template-columns:1fr;gap:.75rem;display:grid}@media (min-width:640px){.pf-admin-automation-media-row{grid-template-columns:1fr 1fr}}.pf-admin-automation-checklist{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background:color-mix(in srgb, var(--foreground) 2.5%, transparent);border-radius:.35rem;margin:0;padding:.55rem .75rem;font-size:.78rem;line-height:1.45;list-style:none}.pf-admin-automation-checklist li{align-items:flex-start;gap:.4rem;margin:.2rem 0;display:flex}.pf-admin-automation-checklist li:before{content:"○";opacity:.55;flex-shrink:0}.pf-admin-automation-checklist li[data-done=true]:before{content:"✓";color:var(--accent);opacity:1}.pf-admin-automation-checklist li[data-done=false]{opacity:.88}.pf-admin-automation-inline-error{color:#f87171;margin:.25rem 0 0;font-size:.75rem}.pf-admin-automation-copy-feedback{color:var(--accent);margin-left:.35rem;font-size:.72rem}
.pf-email-image-wrap{display:inline-block;position:relative}.pf-email-typed-svg{box-sizing:border-box;aspect-ratio:300/52;width:100%;min-width:0;max-width:min(100%,300px);height:auto;display:block}.pf-email-typed-svg-compact{width:100%;min-width:0;max-width:min(100%,280px)}.pf-email-typed-svg-compact .pf-email-svg-text{font-size:20px}.pf-email-svg-bg{fill:none;pointer-events:none}.pf-email-svg-text{fill:#fff;font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.2px;font-size:19px}.pf-email-svg-caret-live,.pf-email-svg-caret-end{fill:#fff}.pf-email-svg-caret-live{opacity:1}.pf-email-svg-caret-end{animation:1s step-end infinite pf-admin-caret-blink}html[data-theme=light] .pf-email-svg-text,html[data-theme=light] .pf-email-svg-caret-live,html[data-theme=light] .pf-email-svg-caret-end{fill:#000}.pf-admin-title{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;letter-spacing:-.01em;font-size:clamp(1.7rem,2.4vw,2.2rem);line-height:1.1}.pf-admin-kicker{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.16em;font-size:11px}.pf-admin-caret{color:var(--accent);animation:1s step-end infinite pf-admin-caret-blink}@keyframes pf-admin-caret-blink{0%,49%{opacity:1}50%,to{opacity:.2}}.pf-hero-grid{grid-template-columns:1fr;align-items:start;gap:1.25rem;width:100%;display:grid}@media (min-width:640px){.pf-hero-grid{gap:2.5rem}}@media (min-width:900px){.pf-hero-grid{grid-template-columns:minmax(300px,1fr) 288px;gap:3rem}}@media (min-width:1024px){.pf-hero-grid{gap:4rem}}.pf-modal-bg{z-index:0;border-radius:inherit;pointer-events:none;background-color:color-mix(in srgb, var(--card-bg-bottom) 88%, var(--accent) 12%);background-image:radial-gradient(ellipse 100% 55% at 50% -5%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 50%), linear-gradient(color-mix(in srgb, var(--accent) 14%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--accent) 14%, transparent) 1px, transparent 1px);background-position:top,50%,50%;background-size:100% 100%,26px 26px,26px 26px;position:absolute;inset:0}.pf-modal-view:fullscreen .pf-modal-bg{display:none}:-webkit-any(video:fullscreen,video:-webkit-full-screen){outline:none;object-fit:contain!important;background:#000!important;border-radius:0!important;width:100%!important;max-width:100vw!important;height:100%!important;max-height:100vh!important;transition:none!important;animation:none!important}:is(video:fullscreen,video:fullscreen){outline:none;object-fit:contain!important;background:#000!important;border-radius:0!important;width:100%!important;max-width:100vw!important;height:100%!important;max-height:100vh!important;transition:none!important;animation:none!important}.pf-modal-view:fullscreen{background:#000!important;border:none!important;border-radius:0!important;justify-content:center!important;align-items:center!important;width:100%!important;height:100%!important;padding:0!important;transition:none!important;animation:none!important;display:flex!important}.pf-modal-view:fullscreen img,.pf-modal-view:fullscreen video{object-fit:contain!important;border-radius:0!important;width:auto!important;max-width:100%!important;height:auto!important;max-height:100%!important;transition:none!important}.pf-modal-view:fullscreen::backdrop,video:fullscreen::backdrop{background:#000}
.pf-section-shell{border-top:1px solid color-mix(in srgb, var(--foreground) 5%, transparent);padding:4rem 1rem}@media (min-width:640px){.pf-section-shell{padding:6rem 2rem}}@media (min-width:768px){.pf-section-shell{padding:8rem 5rem}}.pf-section-shell-contact{padding-top:4rem;padding-bottom:4rem}@media (min-width:640px){.pf-section-shell-contact{padding-top:6rem;padding-bottom:6rem}}@media (min-width:900px){.pf-section-shell-contact{padding:8rem 5rem}}.pf-section-shell-recommendations{padding-top:3.5rem;padding-bottom:3.5rem}@media (min-width:640px){.pf-section-shell-recommendations{padding-top:6rem;padding-bottom:6rem}}@media (min-width:768px){.pf-section-shell-recommendations{padding-top:8rem;padding-bottom:8rem}}.pf-section-shell-projects{border-top:none;max-width:min(100%,92rem);margin-left:auto;margin-right:auto;padding:4rem 1rem}@media (min-width:640px){.pf-section-shell-projects{padding:6rem 2rem}}@media (min-width:768px){.pf-section-shell-projects{padding:8rem 5rem}}.pf-container-tight{box-sizing:border-box;width:100%;max-width:80rem;margin-left:auto;margin-right:auto}.pf-section-header-row{align-items:center;gap:1.5rem;display:flex}.pf-section-header-row-with-subtitle{margin-bottom:1rem}.pf-section-header-row-no-subtitle{margin-bottom:2.5rem}@media (min-width:768px){.pf-section-header-row-no-subtitle{margin-bottom:4rem}}.pf-section-header-kicker{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.28em;color:var(--accent);white-space:nowrap;font-size:.75rem}.pf-section-header-rule{background:linear-gradient(to right, color-mix(in srgb, var(--foreground) 15%, transparent), color-mix(in srgb, var(--foreground) 8%, transparent), transparent);flex:1;height:1px}.pf-section-header-subtitle{white-space:normal;max-width:42rem;color:var(--text-muted);margin-bottom:2.5rem;font-size:13px;line-height:1.625}@media (min-width:640px){.pf-section-header-subtitle{font-size:.875rem}}@media (min-width:768px){.pf-section-header-subtitle{white-space:pre-line;margin-bottom:4rem;font-size:15px}}.pf-section-header-subtitle p+p{margin-top:1rem}@media (min-width:768px){.pf-section-header-subtitle p+p{margin-top:1rem}}.pf-btn{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.2em;cursor:pointer;border:none;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:11px;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}@media (min-width:640px){.pf-btn{letter-spacing:.1em;font-size:.75rem}}.pf-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:4px}.pf-btn-primary{background-color:var(--accent);color:#000}.pf-btn-primary:hover{background-color:var(--accent-hover)}.pf-btn-outline{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);color:color-mix(in srgb, var(--foreground) 70%, transparent);background:0 0}.pf-btn-outline:hover{border-color:color-mix(in srgb, var(--foreground) 45%, transparent);color:var(--foreground)}.pf-container-section{max-width:80rem;margin-left:auto;margin-right:auto;padding-left:2rem;padding-right:2rem}@media (min-width:768px){.pf-container-section{padding-left:5rem;padding-right:5rem}}.pf-hero{min-height:min(1024px,100vh);padding:0 1rem 2rem;padding-top:calc(9rem + env(safe-area-inset-top,0px));position:relative;overflow:hidden visible}@media (min-width:640px){.pf-hero{padding:0 2rem 6rem;padding-top:calc(10rem + env(safe-area-inset-top,0px))}}@media (min-width:900px){.pf-hero{padding-left:5rem;padding-right:5rem;padding-top:calc(11rem + env(safe-area-inset-top,0px));overflow:hidden}}@media (min-width:900px) and (max-width:1599px){.pf-hero{padding-top:calc(9.5rem + env(safe-area-inset-top,0px))}}@media (min-width:1600px){.pf-hero{padding-top:10rem}}.pf-hero-grid-bg{pointer-events:none;opacity:.03;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:80px 80px;position:absolute;inset:0}.pf-hero-glow{pointer-events:none;background-color:color-mix(in srgb, var(--accent) 5%, transparent);filter:blur(64px);border-radius:9999px;width:24rem;height:24rem;position:absolute;top:33%;left:25%}.pf-hero-portrait-wrap{justify-content:center;width:100%;display:flex}@media (min-width:900px){.pf-hero-portrait-wrap{grid-area:1/2;justify-content:flex-end;padding-top:.5rem}}.pf-hero-portrait-inner{aspect-ratio:1;border-radius:9999px;flex-shrink:0;width:min(100%,180px);position:relative;overflow:hidden}@media (min-width:640px){.pf-hero-portrait-inner{width:16rem}}@media (min-width:900px){.pf-hero-portrait-inner{width:18rem}}.pf-hero-portrait-img{object-fit:cover;object-position:top center;width:100%;height:100%}@media (min-width:640px){.pf-hero-portrait-img{object-position:center}}.pf-hero-portrait-fallback{aspect-ratio:1;background-color:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;width:100%;height:100%;padding:1rem;display:flex}.pf-hero-portrait-fallback-text{text-align:center;font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.1em;color:var(--text-faint);font-size:10px;line-height:1.625}.pf-hero-content{text-align:center;flex-direction:column;min-width:0;display:flex}@media (min-width:900px){.pf-hero-content{text-align:left;grid-area:1/1;min-width:300px}}.pf-hero-kicker{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.28em;color:var(--accent);font-size:11px}@media (min-width:640px){.pf-hero-kicker{font-size:.75rem}}.pf-hero-title{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;letter-spacing:-.025em;color:var(--foreground);margin-top:1rem;font-size:1.875rem;font-weight:300;line-height:.92}@media (min-width:640px){.pf-hero-title{margin-top:2rem;font-size:3rem;line-height:.95}}@media (min-width:900px){.pf-hero-title{font-size:3.75rem}}@media (min-width:1024px){.pf-hero-title{font-size:4.5rem}}@media (min-width:1280px){.pf-hero-title{font-size:7rem}}.pf-hero-name-muted{color:var(--text-faint)}.pf-hero-tagline{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.25rem .5rem;min-height:2.4rem;margin-top:1rem;display:flex}@media (min-width:640px){.pf-hero-tagline{min-height:3rem;margin-top:2rem}}@media (min-width:900px){.pf-hero-tagline{justify-content:flex-start}}.pf-hero-tagline-prefix{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--text-subtle);font-size:11px}@media (min-width:640px){.pf-hero-tagline-prefix{font-size:15px}}.pf-hero-rotating-word{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--accent);font-size:1.125rem;transition:opacity .3s}@media (min-width:640px){.pf-hero-rotating-word{font-size:1.875rem}}@media (min-width:900px){.pf-hero-rotating-word{font-size:2.25rem}}.pf-hero-cursor{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--accent);font-size:1rem}@media (min-width:640px){.pf-hero-cursor{font-size:1.5rem}}.pf-hero-pitch-wrap{width:100%;max-width:64ch;margin-top:1.25rem;margin-left:auto;margin-right:auto}@media (min-width:900px){.pf-hero-pitch-wrap{margin-left:0;margin-right:0}}.pf-hero-pitch{text-align:left;color:var(--text-muted);font-size:.875rem;font-weight:300;line-height:1.55}@media (min-width:640px){.pf-hero-pitch{font-size:17px;line-height:1.7}}.pf-hero-pitch p+p{margin-top:.625rem}@media (min-width:640px){.pf-hero-pitch p+p{margin-top:1rem}}.pf-hero-pitch p{white-space:normal}@media (min-width:900px){.pf-hero-pitch p{white-space:pre-line}}.pf-hero-actions{gap:.75rem;width:100%;margin-top:1.75rem;display:flex}@media (min-width:640px){.pf-hero-actions{margin-top:2.5rem}}@media (min-width:900px){.pf-hero-actions{flex-wrap:wrap;gap:1rem;width:auto;margin-top:3rem}}.pf-hero-btn-primary{flex:1;justify-content:center;min-width:0}@media (min-width:900px){.pf-hero-btn-primary{flex:none;justify-content:flex-start}}.pf-hero-github{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);min-width:0;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.2em;color:var(--text-subtle);flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:11px;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.pf-hero-github:hover{border-color:color-mix(in srgb, var(--foreground) 45%, transparent);color:var(--foreground)}.pf-hero-github:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:4px}@media (min-width:640px){.pf-hero-github{letter-spacing:.1em;font-size:.75rem}}@media (min-width:900px){.pf-hero-github{flex:none;justify-content:flex-start}}.pf-hero-btn-arrow{transition:transform .2s}.pf-hero-btn-primary:hover .pf-hero-btn-arrow{transform:translate(.25rem)}.pf-hero-scroll-hint{z-index:1;opacity:.3;flex-direction:column;align-items:center;gap:.5rem;width:100%;margin-top:.75rem;margin-left:auto;margin-right:auto;display:flex;position:relative}@media (max-width:899px){.pf-hero-scroll-hint{padding-bottom:max(.75rem, env(safe-area-inset-bottom,0px));gap:.375rem}}@media (min-width:640px){.pf-hero-scroll-hint{margin-top:1rem}}@media (min-width:900px){.pf-hero-scroll-hint{width:auto;margin-top:0;padding-bottom:0;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}}.pf-hero-scroll-label{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--foreground);font-size:10px}.pf-hero-scroll-line{background:linear-gradient(to bottom, var(--foreground), transparent);width:1px;height:3rem}.pf-about-photo-max{max-width:min(100%,320px)}@media (min-width:640px){.pf-about-photo-max{max-width:28rem}}@media (min-width:768px){.pf-about-photo-max{max-width:none;margin-left:0;margin-right:0}}.pf-about-title{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);margin-bottom:1.25rem;font-size:1.5rem;line-height:1.15}@media (min-width:640px){.pf-about-title{margin-bottom:1.75rem;font-size:2rem}}@media (min-width:768px){.pf-about-title{margin-bottom:2rem;font-size:2.625rem}}.pf-about-paragraph{white-space:normal;color:var(--text-muted);margin-bottom:1rem;font-size:.875rem;font-weight:300;line-height:1.625}.pf-about-paragraph:last-child{margin-bottom:0}@media (min-width:640px){.pf-about-paragraph{margin-bottom:1.25rem;font-size:1rem}}@media (min-width:768px){.pf-about-paragraph{white-space:pre-line;margin-bottom:1.5rem}}.pf-about-info-card{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);border-radius:.75rem;padding:1rem}@media (min-width:640px){.pf-about-info-card{padding:1.25rem}}@media (min-width:768px){.pf-about-info-card{border-color:color-mix(in srgb, var(--foreground) 5%, transparent);background:0 0;padding:0}}.pf-about-info-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.pf-about-info-item{border-top:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);padding:1rem 0}.pf-about-info-item:first-child{border-top:none;padding-top:0}.pf-about-info-item:last-child{padding-bottom:0}@media (min-width:768px){.pf-about-info-item{border-color:color-mix(in srgb, var(--foreground) 5%, transparent);padding:1.25rem 0}}.pf-about-info-label{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb, var(--accent) 80%, transparent);margin-bottom:.375rem;font-size:10px}.pf-about-info-title{color:var(--foreground);font-size:.9375rem;font-weight:300;line-height:1.375}.pf-about-info-title-accent{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--accent);font-size:.875rem}@media (min-width:640px){.pf-about-info-title{font-size:1rem}}.pf-about-info-sub{font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--text-faint);margin-top:.25rem;font-size:11px;line-height:1.625}@media (min-width:640px){.pf-about-info-sub{font-size:.75rem}}.pf-skills-grid-row{--bs-gutter-x:.75rem;--bs-gutter-y:1rem}@media (min-width:576px){.pf-skills-grid-row{--bs-gutter-x:1rem;--bs-gutter-y:1.25rem}}@media (min-width:992px){.pf-skills-grid-row{--bs-gutter-x:.625rem;--bs-gutter-y:1.25rem}}.pf-skills-column-title{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb, var(--accent) 85%, transparent);margin-bottom:1rem;font-size:.75rem}.pf-skills-list{grid-template-columns:repeat(2,1fr);gap:.625rem .75rem;margin:0;padding:0;list-style:none;display:grid}@media (min-width:768px){.pf-skills-list{grid-template-columns:1fr;row-gap:.75rem}}.pf-skills-item{min-width:0;color:var(--text-muted);align-items:flex-start;gap:.5rem;font-size:.875rem;font-weight:300;line-height:1.65;display:flex}@media (min-width:640px){.pf-skills-item{gap:.75rem;font-size:1rem}}.pf-skills-bullet{background-color:color-mix(in srgb, var(--accent) 50%, transparent);border-radius:9999px;flex-shrink:0;width:.375rem;height:.375rem;margin-top:.55em}.pf-skills-cert-heading{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);margin-bottom:1.5rem;font-size:.75rem}.pf-skills-cert-row{flex-wrap:wrap;gap:.75rem;display:flex}.pf-skills-cert-chip{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.025em;color:var(--text-subtle);padding:.5rem .875rem;font-size:.75rem}.pf-contact-title{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);margin-bottom:1.5rem;font-size:1.625rem;line-height:1}@media (min-width:640px){.pf-contact-title{margin-bottom:2rem;font-size:2rem}}@media (min-width:900px){.pf-contact-title{font-size:3.25rem}}.pf-contact-pitch{color:var(--text-muted);font-size:.875rem;font-weight:300;line-height:1.625}@media (min-width:640px){.pf-contact-pitch{font-size:1rem}}.pf-contact-pitch p+p{margin-top:1rem}.pf-contact-pitch p{white-space:normal}@media (min-width:900px){.pf-contact-pitch p{white-space:pre-line}}.pf-contact-link-card{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);color:inherit;justify-content:space-between;align-items:center;padding:1.5rem;text-decoration:none;transition:border-color .3s,background-color .3s;display:flex}.pf-contact-link-card:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);background-color:var(--veil)}.pf-contact-link-card:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:4px}.pf-contact-link-label{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);margin-bottom:.25rem;font-size:10px}.pf-contact-link-value{color:var(--foreground);font-weight:300}.pf-contact-link-arrow{color:var(--text-faint);transition:transform .3s,color .3s}.pf-contact-link-card:hover .pf-contact-link-arrow{color:var(--accent);transform:translate(.25rem)}.pf-rec-layout{margin-top:2rem}@media (min-width:640px){.pf-rec-layout{margin-top:3.5rem}}@media (min-width:768px){.pf-rec-layout{margin-top:5rem}}.pf-rec-row{flex-direction:column;gap:1rem;min-width:0;display:flex}@media (min-width:768px){.pf-rec-row{flex-direction:row;align-items:stretch;gap:1rem}}.pf-rec-nav-btn-desktop-prev{order:2;align-self:center;display:none}@media (min-width:768px){.pf-rec-nav-btn-desktop-prev{order:1;display:flex}}.pf-rec-nav-btn-desktop-next{order:3;align-self:center;display:none}@media (min-width:768px){.pf-rec-nav-btn-desktop-next{display:flex}}.pf-rec-mobile-nav{order:2;justify-content:center;gap:1.5rem;padding-top:.25rem;display:flex}@media (min-width:768px){.pf-rec-mobile-nav{display:none}}.pf-rec-aside{min-width:0}@media (min-width:1024px){.pf-rec-aside{flex-shrink:0;width:min(100%,360px)}}.pf-rec-avatar-row{align-items:flex-start;gap:1rem;display:flex}.pf-rec-avatar{width:3.5rem;height:3.5rem;font-family:var(--font-dm-mono), ui-monospace, monospace;border-style:solid;border-width:1px;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;display:flex}.pf-rec-name{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);font-size:1.125rem;line-height:1.25}@media (min-width:640px){.pf-rec-name{font-size:1.5rem}}.pf-rec-meta-wrap{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.pf-rec-badge{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:10px}.pf-rec-meta-line{overflow-wrap:break-word;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);margin-top:.5rem;font-size:10px}.pf-rec-sidebar-block{border-top:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);flex-direction:column;gap:.75rem;margin-top:2rem;padding-top:1.5rem;display:flex}.pf-rec-sidebar-label{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:10px}.pf-rec-sidebar-value{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);font-size:10px}.pf-rec-sidebar-link{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:10px;text-decoration:none;transition:color .2s;display:inline-flex}.pf-rec-sidebar-link:hover{color:color-mix(in srgb, var(--accent) 80%, transparent)}.pf-rec-sidebar-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:2px}.pf-rec-sidebar-divider{border-top:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);padding-top:1rem}.pf-rec-quote-col{flex:1;min-width:0}.pf-rec-nav-btn{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);background-color:var(--veil);color:color-mix(in srgb, var(--foreground) 90%, transparent);cursor:pointer;border-radius:.375rem;flex-shrink:0;min-width:44px;min-height:44px;padding:.75rem 1rem;transition:border-color .2s,color .2s}.pf-rec-nav-btn:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-rec-nav-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:2px}.pf-rec-article{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);border-radius:.375rem;flex:1;order:1;width:100%;min-width:0;padding:1rem}@media (min-width:640px){.pf-rec-article{padding:1.5rem}}@media (min-width:768px){.pf-rec-article{order:2;padding:2.5rem}}.pf-rec-quote-mark{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:color-mix(in srgb, var(--accent) 50%, transparent);font-size:1.875rem;line-height:1}@media (min-width:640px){.pf-rec-quote-mark{font-size:3rem}}@media (min-width:768px){.pf-rec-quote-mark{font-size:3.75rem}}.pf-rec-quote-body{margin-top:-.75rem}@media (min-width:640px){.pf-rec-quote-body{margin-top:-1.25rem}}@media (min-width:768px){.pf-rec-quote-body{margin-top:-1.5rem}}.pf-rec-quote-paragraph{overflow-wrap:break-word;color:var(--text-muted);white-space:pre-line;font-size:.8125rem;font-weight:300;line-height:1.75}@media (min-width:640px){.pf-rec-quote-paragraph{font-size:1rem}}.pf-rec-quote-paragraph+.pf-rec-quote-paragraph{margin-top:.75rem}@media (min-width:640px){.pf-rec-quote-paragraph+.pf-rec-quote-paragraph{margin-top:1rem}}.pf-rec-linkedin-footer{justify-content:center;margin-top:1rem;display:flex}@media (min-width:640px){.pf-rec-linkedin-footer{margin-top:1.5rem}}.pf-rec-linkedin-footer a{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);align-items:center;font-size:10px;text-decoration:none;transition:color .2s;display:inline-flex}.pf-rec-linkedin-footer a:hover{color:var(--accent)}.pf-home-articles-loading{color:var(--text-subtle);margin:0;font-size:.875rem}.pf-home-articles-grid{align-items:stretch}.pf-home-article-teaser{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);box-sizing:border-box;border-radius:.75rem;flex-direction:column;min-height:100%;padding:1rem;display:flex}@media (min-width:640px){.pf-home-article-teaser{padding:1.25rem}}.pf-home-article-teaser-cover{color:inherit;border-radius:.5rem;outline:none;margin:0 0 1rem;text-decoration:none;display:block;overflow:hidden}.pf-home-article-teaser-cover:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 55%, transparent)}.pf-home-article-teaser-cover-frame{aspect-ratio:1200/630;background:color-mix(in srgb, var(--foreground) 6%, transparent);width:100%;display:block;position:relative;overflow:hidden}.pf-home-article-teaser-cover-img{object-fit:cover}.pf-home-article-teaser-title{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);margin:0;font-size:1.15rem;line-height:1.3}@media (min-width:768px){.pf-home-article-teaser-title{font-size:1.25rem}}.pf-home-article-teaser-title-link{color:inherit;text-decoration:none;transition:color .2s}.pf-home-article-teaser-title-link:hover{color:var(--accent)}.pf-home-article-teaser-excerpt{color:var(--text-muted);-webkit-line-clamp:4;-webkit-box-orient:vertical;flex:auto;margin:.65rem 0 0;font-size:.9rem;line-height:1.55;display:-webkit-box;overflow:hidden}.pf-home-article-teaser-footer{margin-top:auto;padding-top:1rem}.pf-home-article-teaser-read{color:var(--accent);font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;text-decoration:none;transition:color .2s;display:inline-flex}.pf-home-article-teaser-read:hover{color:color-mix(in srgb, var(--accent) 80%, transparent)}.pf-home-articles-archive-row{justify-content:flex-end;margin-top:1.5rem;display:flex}@media (min-width:768px){.pf-home-articles-archive-row{margin-top:2rem}}.pf-home-articles-all-link{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);align-items:center;gap:.5rem;font-size:.875rem;text-decoration:none;transition:color .2s;display:inline-flex}.pf-home-articles-all-link:hover{color:var(--accent)}.pf-home-articles-all-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:4px}.pf-home-articles-all-link-arrow{transition:transform .2s}.pf-home-articles-all-link:hover .pf-home-articles-all-link-arrow{transform:translate(.125rem)}.pf-home-articles-empty{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.pf-home-articles-empty-text{color:var(--text-muted);margin:0;font-size:.95rem}.pf-projects-solo-card{max-width:44rem}.pf-projects-empty{color:var(--text-subtle);margin-top:2rem;font-size:.875rem}.pf-projects-github-link{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);align-items:center;gap:.5rem;font-size:.875rem;text-decoration:none;transition:color .2s;display:inline-flex}.pf-projects-github-link:hover{color:var(--accent)}.pf-projects-github-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:4px}.pf-projects-github-link-arrow{transition:transform .2s}.pf-projects-github-link:hover .pf-projects-github-link-arrow{transform:translate(.125rem,-.125rem)}.pf-legal-prose-wrap{padding-bottom:clamp(3rem,6vw,5rem)}.pf-legal-prose{max-width:48rem;margin-left:auto;margin-right:auto}.pf-legal-prose h2{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);margin-top:2rem;margin-bottom:.75rem;font-size:clamp(1.2rem,2.2vw,1.45rem);font-weight:600}.pf-legal-prose h2:first-of-type{margin-top:0}.pf-legal-prose p,.pf-legal-prose li{color:color-mix(in srgb, var(--foreground) 92%, transparent);margin-bottom:.75rem;font-size:.95rem;line-height:1.65}.pf-legal-prose ul{margin-bottom:1rem;padding-left:1.25rem}.pf-legal-prose a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.pf-legal-prose a:hover{color:color-mix(in srgb, var(--accent) 88%, var(--foreground))}
.pf-card{border:1px solid var(--card-border);background:linear-gradient(to bottom, var(--card-bg-top), var(--card-bg-bottom));height:100%;box-shadow:0 24px 80px -32px var(--card-shadow-strong);border-radius:1rem;flex-direction:column;transition:border-color .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden}.pf-card:hover{border-color:color-mix(in srgb, var(--accent) 25%, transparent);box-shadow:0 28px 90px -28px #4ade800f}.pf-card-cover{flex-shrink:0;width:100%;position:relative}.pf-card-cover-stage{isolation:isolate;aspect-ratio:16/9;border-top-left-radius:1rem;border-top-right-radius:1rem;width:100%;position:relative;overflow:hidden}.pf-card-cover-media{z-index:1;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.pf-card-cover-media-pro{transform:scale(1.03)}.pf-card-cover-placeholder{z-index:1;background-color:var(--card-bg-bottom);position:absolute;inset:0}.pf-card-body{flex-direction:column;flex:1;min-width:0;min-height:0;padding:1.75rem 1.5rem;display:flex;overflow:hidden auto}@media (min-width:640px){.pf-card-body{padding:2rem}}@media (min-width:1024px){.pf-card-body{padding:2.5rem 2.25rem}}.pf-card-body-row{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.pf-card-body-badges{flex-wrap:wrap;gap:.5rem;min-width:0;display:flex}.pf-card-body-badge-highlight{border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background-color:color-mix(in srgb, var(--accent) 6%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);border-radius:.375rem;align-items:center;padding:.375rem .625rem;font-size:10px;display:inline-flex}@media (min-width:640px){.pf-card-body-badge-highlight{font-size:11px}}.pf-card-body-badge-team{border:1px solid color-mix(in srgb, var(--foreground) 12%, transparent);background-color:var(--veil);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);border-radius:.375rem;align-items:center;padding:.375rem .625rem;font-size:10px;display:inline-flex}@media (min-width:640px){.pf-card-body-badge-team{font-size:11px}}.pf-card-body-github{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);flex-shrink:0;align-items:center;gap:.375rem;font-size:11px;text-decoration:none;transition:color .2s;display:inline-flex}.pf-card-body-github:hover{color:var(--accent)}.pf-card-body-github:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:2px}.pf-card-body-github-arrow{transition:transform .2s}.pf-card-body-github:hover .pf-card-body-github-arrow{transform:translate(.125rem,-1px)}@media (min-width:640px){.pf-card-body-github{font-size:.75rem}}.pf-card-body-title{font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);margin-bottom:.5rem;font-size:1.2rem;line-height:1.25;transition:color .3s}.pf-card:hover .pf-card-body-title{color:var(--accent)}@media (min-width:640px){.pf-card-body-title{font-size:1.5rem}}@media (min-width:768px){.pf-card-body-title{font-size:1.65rem}}.pf-card-body-subtitle{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.2em;color:var(--text-subtle);margin-bottom:1.75rem;font-size:11px;line-height:1.375}@media (min-width:640px){.pf-card-body-subtitle{font-size:.75rem}}.pf-card-body-tabs{border-bottom:1px solid color-mix(in srgb, var(--foreground) 8%, transparent);flex-wrap:wrap;gap:.25rem;margin-bottom:1.25rem;display:flex}@media (min-width:640px){.pf-card-body-tabs{gap:0}}.pf-card-body-tab{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;color:var(--text-subtle);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.625rem;font-size:11px;transition:color .2s}.pf-card-body-tab:hover{color:var(--text-muted)}.pf-card-body-tab:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:2px}.pf-card-body-tab-active{border-bottom-color:var(--accent);color:var(--accent)}@media (min-width:640px){.pf-card-body-tab{padding:.625rem 1rem;font-size:.75rem}}.pf-card-body-panel{background-color:var(--project-panel-bg);box-shadow:inset 0 0 0 1px var(--project-panel-ring);border-radius:.75rem;flex:none;padding:1rem}@media (min-width:640px){.pf-card-body-panel{padding:1.25rem}}@media (min-width:768px){.pf-card-body-panel{flex:1;min-height:0}}.pf-card-body-panel-text{color:color-mix(in srgb, var(--foreground) 78%, transparent);font-size:.875rem;font-weight:300;line-height:1.7}@media (min-width:640px){.pf-card-body-panel-text{font-size:1rem}}.pf-card-body-context-quote{border-left:2px solid color-mix(in srgb, var(--accent) 35%, transparent);color:var(--text-muted);padding-left:.875rem;font-size:.875rem;font-weight:300;line-height:1.7}@media (min-width:640px){.pf-card-body-context-quote{font-size:1rem}}.pf-card-body-context-role{color:var(--text-muted);margin-top:1.25rem;font-size:.875rem;font-weight:300;line-height:1.7}@media (min-width:640px){.pf-card-body-context-role{font-size:1rem}}.pf-card-body-role-label{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb, var(--accent) 85%, transparent);margin-bottom:.25rem;font-size:10px;display:block}@media (min-width:640px){.pf-card-body-role-label{font-size:11px}}.pf-card-body-tags{border-top:1px solid color-mix(in srgb, var(--foreground) 6%, transparent);flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem;display:flex}@media (min-width:768px){.pf-card-body-tags{margin-top:2rem;padding-top:1.75rem}}.pf-card-body-tag{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.025em;color:var(--text-subtle);border-radius:9999px;padding:.25rem .75rem;font-size:11px}@media (min-width:640px){.pf-card-body-tag{font-size:.75rem}}.pf-card-body-footer{border-top:1px solid color-mix(in srgb, var(--foreground) 6%, transparent);justify-content:flex-end;margin-top:1rem;padding-top:1rem;display:flex}@media (min-width:768px){.pf-card-body-footer{margin-top:1.25rem;padding-top:1.25rem}}.pf-card-body-more{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);cursor:pointer;background:0 0;border:none;align-items:center;gap:.375rem;font-size:11px;transition:color .2s;display:inline-flex}.pf-card-body-more:hover{color:var(--accent)}.pf-card-body-more:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:2px}@media (min-width:640px){.pf-card-body-more{font-size:.75rem}}.pf-card-body-stack{flex-direction:column;gap:1.25rem;display:flex}.pf-modal-overlay{z-index:120;min-height:0;padding:.75rem;padding-top:max(.75rem, env(safe-area-inset-top,0px));padding-bottom:max(.75rem, env(safe-area-inset-bottom,0px));padding-left:max(.75rem, env(safe-area-inset-left,0px));padding-right:max(.75rem, env(safe-area-inset-right,0px));background-color:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@media (min-width:640px){.pf-modal-overlay{padding:1rem}}@media (min-width:1024px){.pf-modal-overlay{padding:1.5rem}}.pf-modal-shell{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--card-bg-bottom);border-radius:1rem;flex-direction:column;align-self:stretch;width:min(96vw,1280px);height:100%;min-height:0;max-height:calc(100dvh - 1.5rem);display:flex;overflow:hidden;box-shadow:0 32px 120px #000000a6}@media (min-width:640px){.pf-modal-shell{max-height:calc(100dvh - 2rem)}}@media (min-width:1024px){.pf-modal-shell{max-height:calc(100dvh - 3rem)}}.pf-modal-shell--page{width:min(96vw,1280px);height:auto;max-height:none;margin-left:auto;margin-right:auto}@media (min-width:1024px){.pf-modal-shell--page .pf-modal-details{height:auto;min-height:0}}.pf-modal-header{border-bottom:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;transition:all .3s;display:flex}@media (min-width:640px){.pf-modal-header{gap:1rem;padding:1rem 1.25rem}}.pf-modal-header-expanded{padding:.5rem 1rem}@media (min-width:640px){.pf-modal-header-expanded{padding:.5rem 1.25rem}}@media (min-width:1024px){.pf-modal-header:not(.pf-modal-header-expanded){padding:1rem 1.75rem}}.pf-modal-header-main{flex:1;min-width:0;padding-right:.5rem}.pf-modal-kicker{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:.25rem;font-size:10px}.pf-modal-title{overflow-wrap:break-word;font-family:var(--font-dm-serif), ui-serif, Georgia, serif;color:var(--foreground);font-size:1.25rem;line-height:1.375;transition:all .3s}@media (min-width:640px){.pf-modal-title{font-size:1.5rem}}@media (min-width:1024px){.pf-modal-title{font-size:1.875rem}}.pf-modal-title-expanded{font-size:1.125rem;line-height:1.25}@media (min-width:640px){.pf-modal-title-expanded{font-size:1.25rem}}@media (min-width:1024px){.pf-modal-title-expanded{font-size:1.5rem}}.pf-modal-subtitle{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);font-size:11px}@media (min-width:640px){.pf-modal-subtitle{font-size:.75rem}}.pf-modal-close{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);cursor:pointer;background:0 0;flex-shrink:0;padding:.375rem .75rem;font-size:10px;transition:border-color .2s,color .2s}.pf-modal-close:hover{border-color:color-mix(in srgb, var(--foreground) 35%, transparent);color:var(--foreground)}.pf-modal-main{flex-direction:column;flex:1;gap:.75rem;min-height:0;padding:.75rem;transition:padding .3s,gap .3s;display:flex;overflow:hidden}@media (min-width:768px){.pf-modal-main:not(.pf-modal-main-expanded){gap:1rem;padding:1rem}}@media (min-width:1024px){.pf-modal-main:not(.pf-modal-main-expanded){flex-direction:row;align-items:stretch;gap:1.25rem;padding:1.25rem}}.pf-modal-main-expanded{gap:.5rem;padding:.5rem}@media (min-width:640px){.pf-modal-main-expanded{gap:.75rem;padding:.75rem}}.pf-modal-media-col{-ms-overflow-style:none;scrollbar-width:none;min-width:0;min-height:0;overflow:hidden}.pf-modal-media-col::-webkit-scrollbar{display:none}.pf-modal-media-col-expanded{overflow-y:auto}@media (min-width:1024px){.pf-modal-media-col:not(.pf-modal-media-col-expanded){flex-direction:column;flex:1.35 1 0;align-self:stretch;min-width:0;min-height:0;display:flex}.pf-modal-media-col-expanded{flex:1 1 0;align-self:stretch;min-width:0;min-height:0}}.pf-modal-media-col-inner{flex-direction:column;gap:.5rem;width:100%;min-width:0;min-height:0;display:flex}@media (min-width:1024px){.pf-modal-media-col-inner:not(.pf-modal-media-col-inner-expanded){flex:1 1 0;gap:.75rem;min-height:0}}.pf-modal-media-col-inner-expanded{flex:1;gap:.75rem;min-width:0;min-height:0}.pf-modal-demo-bar{flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.pf-modal-demo-title{min-width:0;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);font-size:10px}.pf-modal-demo-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.pf-modal-stage{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);border-radius:.75rem;width:100%;position:relative;overflow:hidden}.pf-modal-stage-collapsed{aspect-ratio:16/9;cursor:zoom-in;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:100%;max-height:min(42vh,360px);display:flex}@media (min-width:1024px){.pf-modal-stage-collapsed{max-height:min(44vh,400px)}}.pf-modal-stage-expanded{cursor:zoom-out;flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;min-height:0;max-height:none;display:flex}.pf-modal-media-el{z-index:1;object-fit:contain;border-radius:.75rem;width:100%;max-height:100%;position:relative}.pf-modal-media-el-expanded{flex:0 auto;width:auto;max-width:100%;height:auto;max-height:100%}.pf-modal-stage .pf-modal-media-el-video{object-fit:contain;background-color:#000}.pf-modal-stage-collapsed .pf-modal-media-el-video{width:100%;max-height:100%}.pf-modal-stage-expanded .pf-modal-media-el-video{width:100%;max-width:100%}.pf-modal-stage .pf-modal-media-el-image,.pf-modal-stage .pf-modal-media-el-gif{object-fit:contain;background-color:#0000}.pf-modal-stage-expanded .pf-modal-media-el-image,.pf-modal-stage-expanded .pf-modal-media-el-gif{width:auto;max-width:100%;max-height:100%}.pf-modal-toolbar-wrap{pointer-events:none;z-index:2;opacity:0;justify-content:flex-end;align-items:flex-end;padding:.75rem;transition:opacity .3s;display:flex;position:absolute;inset:0}.pf-modal-view:hover .pf-modal-toolbar-wrap,.pf-modal-view:focus-within .pf-modal-toolbar-wrap,.pf-modal-toolbar-wrap-visible{opacity:1}.pf-modal-toolbar{pointer-events:auto;border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000a6;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem;display:flex}.pf-modal-toolbar-btn{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:#ffffffd9;cursor:pointer;background:0 0;border-radius:.375rem;padding:.25rem .625rem;font-size:10px;transition:border-color .2s,color .2s}.pf-modal-toolbar-btn:hover{border-color:color-mix(in srgb, var(--accent) 50%, transparent);color:var(--accent)}.pf-modal-gallery{box-sizing:border-box;background:0 0;border-radius:.75rem;flex-shrink:0;align-items:stretch;gap:.375rem;width:100%;height:min(88px,20dvh);margin-bottom:.5rem;padding:.25rem .25rem .375rem;display:flex;box-shadow:inset 0 1px #ffffff0a}@media (min-width:480px){.pf-modal-gallery{gap:.5rem;height:min(104px,26dvh);padding:.375rem .375rem .5rem}}@media (min-width:1024px){.pf-modal-gallery{gap:.625rem;height:232px;margin-bottom:.75rem;padding:.625rem .625rem .75rem}}@media (min-width:1536px){.pf-modal-gallery{height:150px}}.pf-modal-gallery-expanded{margin-bottom:0}.pf-modal-gallery-nav{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:color-mix(in srgb, var(--card-bg-bottom) 85%, transparent);width:2.25rem;height:100%;min-height:0;font-family:var(--font-dm-mono), ui-monospace, monospace;color:var(--text-subtle);cursor:pointer;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;transition:all .2s;display:flex;box-shadow:0 1px 2px #00000014}.pf-modal-gallery-nav:hover:not(:disabled){border-color:color-mix(in srgb, var(--foreground) 30%, transparent);background-color:var(--veil-strong);color:var(--foreground)}.pf-modal-gallery-nav:disabled{pointer-events:none;opacity:.35}@media (min-width:640px){.pf-modal-gallery-nav{width:2.5rem;font-size:1.25rem}}.pf-modal-gallery-scroll-outer{flex-direction:column;flex:1;justify-content:stretch;min-width:0;min-height:0;display:flex}.pf-modal-gallery-scroll-box{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background:linear-gradient(to bottom right, var(--veil), var(--veil-strong));border-radius:.5rem;flex:1;min-height:0;overflow:hidden}.pf-modal-gallery-scroll{scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;align-items:stretch;gap:.625rem;width:100%;height:100%;min-height:0;padding:.125rem .5rem .5rem;display:flex;overflow:auto hidden}.pf-modal-gallery-scroll::-webkit-scrollbar{display:none}@media (min-width:640px){.pf-modal-gallery-scroll{gap:.75rem;padding:.25rem .25rem .625rem}}.pf-modal-thumb{aspect-ratio:1;scroll-snap-align:center;border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);cursor:pointer;background:0 0;border-radius:.5rem;flex-shrink:0;width:auto;height:100%;min-height:0;max-height:100%;padding:0;transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000f}.pf-modal-thumb:hover{border-color:color-mix(in srgb, var(--foreground) 30%, transparent)}.pf-modal-thumb-active{border-color:var(--accent);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent)}.pf-modal-thumb img,.pf-modal-thumb video{object-fit:cover;width:100%;height:100%}.pf-modal-thumb video{opacity:.9}.pf-modal-thumb-badge{text-transform:uppercase;letter-spacing:.1em;color:#fff;background-color:#000000bf;border-radius:.25rem;padding:.125rem .25rem;font-size:8px;position:absolute;top:.125rem;right:.125rem}@media (min-width:640px){.pf-modal-thumb-badge{font-size:9px}}.pf-modal-details{min-width:0;min-height:0;color:var(--text-muted);overflow-wrap:break-word;-ms-overflow-style:none;scrollbar-width:none;flex:1;font-size:.875rem;font-weight:300;line-height:1.7;overflow:hidden auto}.pf-modal-details::-webkit-scrollbar{display:none}.pf-modal-details>*+*{margin-top:1rem}@media (min-width:480px){.pf-modal-details{font-size:15px;line-height:1.75}.pf-modal-details>*+*{margin-top:1.25rem}}@media (min-width:1024px){.pf-modal-details{border-left:1px solid color-mix(in srgb, var(--accent) 20%, transparent);box-sizing:border-box;flex:.95 1 0;align-self:stretch;height:100%;min-height:0;padding:0 1.25rem .5rem 1.5rem}}@media (min-width:1536px){.pf-modal-details{padding-left:1.75rem;padding-right:1.75rem}}.pf-modal-details-hidden{display:none}.pf-modal-section-label{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);margin-bottom:.375rem;font-size:10px}.pf-modal-footer{border-top:1px solid color-mix(in srgb, var(--foreground) 10%, transparent);flex-shrink:0;padding:.75rem;transition:all .3s}@media (min-width:1024px){.pf-modal-footer:not(.pf-modal-footer-expanded){padding:1rem 1.5rem}}.pf-modal-footer-expanded{padding:.5rem .75rem}@media (min-width:640px){.pf-modal-footer-expanded{padding:.5rem 1rem}}.pf-modal-link-github-sm{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);background-color:var(--veil);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);border-radius:.375rem;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:9px;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 1px 2px #0000000f}@media (min-width:480px){.pf-modal-link-github-sm{gap:.375rem;padding:.375rem .625rem;font-size:10px}}@media (min-width:1024px){.pf-modal-link-github-sm{display:none}}.pf-modal-link-github-sm:hover{border-color:color-mix(in srgb, var(--foreground) 35%, transparent);background-color:var(--veil-strong);color:var(--foreground)}.pf-modal-btn-shrink{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);cursor:pointer;background:0 0;border-radius:.375rem;padding:.25rem .625rem;font-size:10px;transition:border-color .2s,color .2s}.pf-modal-btn-shrink:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pf-modal-footer-expanded-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}@media (min-width:480px){.pf-modal-footer-expanded-actions{gap:.75rem}}.pf-modal-footer-btn{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--veil);font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);border-radius:.375rem;justify-content:center;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:11px;text-decoration:none;transition:all .3s;display:inline-flex}.pf-modal-footer-btn:hover{border-color:color-mix(in srgb, var(--foreground) 25%, transparent);background-color:var(--veil-strong);color:var(--foreground)}@media (min-width:640px){.pf-modal-footer-btn{font-size:.75rem}}.pf-modal-footer-btn-accent{border-color:color-mix(in srgb, var(--accent) 30%, transparent);background-color:color-mix(in srgb, var(--accent) 6%, transparent);color:var(--accent)}.pf-modal-footer-btn-accent:hover{background-color:color-mix(in srgb, var(--accent) 12%, transparent)}.pf-modal-footer-grid{grid-template-columns:1fr;align-items:stretch;gap:.75rem;min-width:0;min-height:0;display:grid}@media (min-width:1024px){.pf-modal-footer-grid{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (min-width:1536px){.pf-modal-footer-grid{grid-template-columns:1.1fr .9fr}}.pf-modal-footer-github-lg{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);background-color:var(--veil);text-align:center;width:100%;min-width:0;font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem;font-size:10px;text-decoration:none;transition:all .3s;display:none;box-shadow:inset 0 1px #ffffff40}@media (min-width:480px){.pf-modal-footer-github-lg{padding:.75rem 1rem;font-size:11px}}@media (min-width:1024px){.pf-modal-footer-github-lg{font-size:.75rem;display:inline-flex}}.pf-modal-footer-github-lg:hover{border-color:color-mix(in srgb, var(--foreground) 30%, transparent);background-color:var(--veil-strong);color:var(--foreground)}.pf-modal-footer-email-box{border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background-color:color-mix(in srgb, var(--accent) 6%, transparent);border-radius:.5rem;flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:.625rem;transition:background-color .3s;display:flex}.pf-modal-footer-email-box-collapsed{padding:.4rem .5rem}.pf-modal-footer-email-box:hover{background-color:color-mix(in srgb, var(--accent) 9%, transparent)}@media (min-width:1024px){.pf-modal-footer-email-box{padding:.75rem}}.pf-modal-footer-email-label{font-family:var(--font-dm-mono), ui-monospace, monospace;text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb, var(--accent) 90%, transparent);margin-bottom:.375rem;padding:0 .125rem;font-size:10px;line-height:1.375}.pf-modal-footer-email-box-collapsed .pf-modal-footer-email-label{letter-spacing:.08em;margin-bottom:.2rem;font-size:9px}@media (min-width:1024px){.pf-modal-footer-email-label{padding:0 .25rem;font-size:11px}}@media (max-height:720px){.pf-modal-shell{border-radius:.5rem;max-height:calc(100dvh - 1rem)}.pf-modal-header{padding:.5rem .75rem}@media (min-width:640px){.pf-modal-header{padding:.625rem 1rem}}.pf-modal-stage-collapsed{max-height:min(34vh,280px)}.pf-modal-gallery{height:min(76px,16dvh);margin-bottom:.375rem}.pf-modal-main:not(.pf-modal-main-expanded){gap:.5rem;padding:.5rem .625rem}}@media (max-height:520px) and (orientation:landscape){.pf-modal-overlay{padding:.25rem;padding-top:max(.25rem, env(safe-area-inset-top,0px));-webkit-overflow-scrolling:touch;align-items:flex-start;overflow-y:auto}.pf-modal-shell{max-height:none;margin-bottom:.5rem}.pf-modal-subtitle{display:none}.pf-modal-stage-collapsed{max-height:min(42svh,220px)}.pf-modal-gallery{height:min(64px,14dvh)}}@media (min-width:1024px) and (max-height:760px){.pf-modal-stage-collapsed{max-height:min(36vh,300px)}.pf-modal-gallery{height:min(120px,22dvh)}}@media (hover:none) and (pointer:coarse){.pf-modal-view .pf-modal-toolbar-wrap:not(.pf-modal-toolbar-wrap-visible){opacity:.7}}.pf-about-photo-frame--banner,.pf-about-photo-frame--block{position:relative}.pf-about-photo-frame--banner{aspect-ratio:2.3;border:1px solid color-mix(in srgb, var(--foreground) 8%, transparent);border-radius:.5rem;width:100%;min-height:104px;max-height:200px;overflow:hidden}@media (min-width:640px){.pf-about-photo-frame--banner{aspect-ratio:2.5;max-height:220px}}.pf-about-photo-frame--block{border:1px solid color-mix(in srgb, var(--foreground) 8%, transparent);border-radius:.5rem;width:100%;height:13rem;overflow:hidden}@media (min-width:640px){.pf-about-photo-frame--block{height:16rem}}@media (min-width:768px){.pf-about-photo-frame--block{height:16rem}}.pf-about-photo-fallback{border:1px dashed color-mix(in srgb, var(--foreground) 10%, transparent);background-color:var(--veil);border-radius:.5rem;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex}.pf-about-photo-fallback--banner{aspect-ratio:2.3;width:100%;min-height:104px;max-height:200px}@media (min-width:640px){.pf-about-photo-fallback--banner{aspect-ratio:2.5;max-height:220px}}.pf-about-photo-fallback--block{height:13rem}@media (min-width:640px){.pf-about-photo-fallback--block{height:16rem}}.pf-about-photo-fallback__text{text-align:center;font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.1em;color:var(--text-faint);font-size:10px;line-height:1.625}.pf-about-animation-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.pf-about-photo-fill-img{object-fit:cover}.pf-protected-email-card{border-radius:.5rem;transition:border-color .3s,background-color .3s}.pf-protected-email-card:not(.pf-protected-email-card--accent){border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent)}.pf-protected-email-card:not(.pf-protected-email-card--accent):hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);background-color:var(--veil)}.pf-protected-email-card--accent{border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);background-color:color-mix(in srgb, var(--background) 85%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent)}.pf-protected-email-card--accent:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);background-color:color-mix(in srgb, var(--background) 95%, transparent)}.pf-protected-email-card-label{letter-spacing:.1em;font-size:10px}.pf-protected-email-card-action-wait{cursor:not-allowed;opacity:.7;min-width:10.5rem}.pf-protected-email-card-action-wait.pf-protected-email-card-action-compact{min-width:7rem}.pf-protected-email-card-action-ready:hover{color:var(--accent)}.pf-logo-btn{height:2.75rem;font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;cursor:pointer;background:0 0;border:none;align-items:center;gap:.125rem;padding:0 .125rem;font-size:1.125rem;font-weight:500;line-height:1;text-decoration:none;transition:color .2s;display:flex}.pf-logo-btn:hover{color:color-mix(in srgb, var(--accent) 80%, transparent)}.pf-logo-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:4px}@media (min-width:640px){.pf-logo-btn{font-size:1.25rem}}.pf-projects-page-item{border-radius:.5rem;flex-direction:column;gap:0;padding:0;display:flex;overflow:hidden}.pf-projects-page-card{min-height:0;color:inherit;outline:none;flex-direction:column;text-decoration:none;display:flex}.pf-projects-page-card:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:4px}.pf-projects-page-item:hover{border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.pf-projects-page-cover{aspect-ratio:16/9;background:color-mix(in srgb, var(--foreground) 5%, transparent);flex-shrink:0;width:100%;display:block;position:relative;overflow:hidden}.pf-projects-page-cover-img{object-fit:cover;transition:transform .35s}.pf-projects-page-card:hover .pf-projects-page-cover-img{transform:scale(1.03)}@media (prefers-reduced-motion:reduce){.pf-projects-page-cover-img{transition:none}.pf-projects-page-card:hover .pf-projects-page-cover-img{transform:none}}.pf-projects-page-card-body{flex-direction:column;gap:.75rem;padding:1.125rem 1.25rem;display:flex}.pf-projects-page-card-body>*{margin:0}.pf-projects-page-card .pf-projects-page-link{font-family:var(--font-dm-mono), ui-monospace, monospace;letter-spacing:-.02em;color:var(--foreground);font-size:1.5rem;font-weight:500;line-height:1.35;transition:color .2s;display:block}.pf-projects-page-card:hover .pf-projects-page-link{color:var(--accent)}.pf-projects-page-card .pf-projects-page-subtitle,.pf-projects-page-card .pf-projects-page-desc,.pf-projects-page-card .pf-card-body-footer{margin-top:0}.pf-project-detail-page{border-top:1px solid color-mix(in srgb, var(--foreground) 5%, transparent);box-sizing:border-box;padding:4rem 1rem}@media (min-width:640px){.pf-project-detail-page{padding-left:2rem;padding-right:2rem}}@media (min-width:768px){.pf-project-detail-page{padding-left:5rem;padding-right:5rem}}
