.pf{--bg:0 0% 4%;--surface:0 0% 8%;--text:0 0% 96%;--muted:0 0% 53%;--stroke:0 0% 12%;--accent:0 0% 96%;--accent-gradient:linear-gradient(90deg,#89aacc,#4e85bf);--font-body:var(--font-inter),Inter,sans-serif;--font-display:var(--font-instrument-serif),"Instrument Serif",serif;background:hsl(var(--bg));color:hsl(var(--text));font-family:var(--font-body);letter-spacing:0;min-height:100vh;position:relative;z-index:0}.pf *{box-sizing:border-box}.pf-bg{background-color:hsl(var(--bg))}.pf-surface{background-color:hsl(var(--surface))}.pf-surface-30{background-color:hsl(var(--surface)/.3)}.pf-text{color:hsl(var(--text))}.pf-text-80{color:hsl(var(--text)/.8)}.pf-muted{color:hsl(var(--muted))}.pf-stroke{border-color:hsl(var(--stroke))}.pf-stroke-bg{background-color:hsl(var(--stroke))}.pf-stroke-50{background-color:hsl(var(--stroke)/.5)}.pf-hover-surface:hover{background-color:hsl(var(--surface))}.pf-navlink{color:hsl(var(--muted))}.pf-navlink.is-active,.pf-navlink:hover{color:hsl(var(--text));background-color:hsl(var(--stroke)/.5)}.pf-display{font-family:var(--font-display);font-style:italic;font-weight:400}.pf-body{font-family:var(--font-body)}.accent-gradient{background-image:var(--accent-gradient)}.accent-gradient-rev{background-image:linear-gradient(270deg,#89aacc,#4e85bf)}.accent-gradient-animated{background-image:linear-gradient(90deg,#89aacc,#4e85bf,#89aacc);background-size:200% 200%;animation:gradient-shift 6s ease infinite}.pf-ring{position:relative;display:inline-flex;border-radius:9999px;isolation:isolate}.pf-ring:before{content:"";position:absolute;inset:-2px;border-radius:9999px;background-image:var(--accent-gradient);opacity:0;transition:opacity .3s ease;z-index:0}.pf-ring:focus-visible:before,.pf-ring:hover:before{opacity:1}.pf-ring-in{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;transition:background-color .3s ease,color .3s ease,transform .3s ease,border-color .3s ease}.pf-btn-solid .pf-ring-in{background:hsl(var(--text));color:hsl(var(--bg))}.pf-btn-outline .pf-ring-in,.pf-btn-solid:hover .pf-ring-in{background:hsl(var(--bg));color:hsl(var(--text))}.pf-btn-outline .pf-ring-in{border:2px solid hsl(var(--stroke))}.pf-btn-outline:hover .pf-ring-in{border-color:transparent}.pf-btn-nav .pf-ring-in{background:hsl(var(--surface));color:hsl(var(--text));backdrop-filter:blur(12px)}.pf-ring:hover .pf-ring-in{transform:scale(1.02)}.pf-scale:hover{transform:scale(1.05)}.pf-logo{position:relative;display:grid;place-items:center;border-radius:9999px;padding:2px;background-image:var(--accent-gradient);transition:transform .3s ease}.pf-logo:hover{background-image:linear-gradient(270deg,#89aacc,#4e85bf);transform:scale(1.1)}.pf-halftone{background-image:radial-gradient(circle,#000 1px,transparent 0);background-size:4px 4px;opacity:.2;mix-blend-mode:multiply}@keyframes scroll-down{0%{transform:translateY(-100%)}to{transform:translateY(200%)}}@keyframes role-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes pf-word-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pf-word-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes pf-fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes pf-fade-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:none}}@keyframes pf-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}.animate-scroll-down{animation:scroll-down 1.5s ease-in-out infinite}.animate-role-fade-in{animation:role-fade-in .4s ease-out both}.pf-word-in{animation:pf-word-in .35s ease-out both}.pf-word-out{animation:pf-word-out .3s ease-in both}.pf-fade-up{animation:pf-fade-up .6s ease-out both}.pf-fade-down{animation:pf-fade-down .6s ease-out both}.pf-pulse{animation:pf-pulse 1.6s ease-in-out infinite}.js .blur-in,.js .name-reveal{opacity:0}.pf-reveal{opacity:0;transform:translateY(30px);transition:opacity 1s ease,transform 1s ease}.pf-reveal.is-in,html:not(.js) .pf-reveal{opacity:1;transform:none}.pf-tabular{font-variant-numeric:tabular-nums}.pf-page #scroll-progress{display:none}@media (prefers-reduced-motion:reduce){.accent-gradient-animated,.animate-role-fade-in,.animate-scroll-down,.pf-fade-down,.pf-fade-up,.pf-pulse,.pf-word-in,.pf-word-out{animation:none}.pf-reveal{opacity:1;transform:none;transition:none}.js .blur-in,.js .name-reveal{opacity:1}}