/* Dark studio: local light pools, reflective folders, scroll arrivals. */
.pf-hero{overflow:clip;background:#0b100e}
.pf-hero::before,.pf-hero::after{content:'';position:absolute;pointer-events:none;z-index:0;border-radius:50%;transform:translate(var(--light-x,0px),var(--light-y,0px));}
.pf-hero::before{width:80%;height:110%;left:-8%;top:-8%;background:radial-gradient(ellipse,#62946b38 0%,#275d4124 35%,transparent 67%)}
.pf-hero::after{width:65%;height:100%;right:-9%;top:8%;background:radial-gradient(ellipse,#8b71cf25 0%,#5a3e9620 35%,transparent 68%)}
.pf-portrait{transform:perspective(1000px) translate3d(var(--head-x,0px),var(--head-y,0px),0) rotateX(var(--head-tilt,0deg)) rotateZ(var(--head-turn,0deg));transition:none;will-change:transform}
.pf-halo{background:radial-gradient(ellipse,#8ee0a07a,transparent 68%);opacity:.34;filter:blur(32px)}
.pf-selected{position:relative;isolation:isolate;overflow:clip}
.pf-selected::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 20% 50%,#396b4820,transparent 54%),radial-gradient(ellipse at 90% 70%,#7362ba1c,transparent 50%)}
.pf-folder-front{overflow:hidden;background:linear-gradient(135deg,#425744 0%,#253b2d 28%,#14211a 70%);border-color:#7a947c;box-shadow:inset 0 1px #d6f3d078,inset 0 12px 25px #8fe7a00b,0 22px 40px #0005}
.pf-folder-edit .pf-folder-front{background:linear-gradient(135deg,#514665 0%,#352b48 30%,#211a30 70%);border-color:#9683ad;box-shadow:inset 0 1px #e0d1f97a,inset 0 12px 25px #c1a0ff0b,0 22px 40px #0005}
.pf-folder-edit .pf-folder-open{color:#c2afff}
.pf-folder-front::after{content:'';position:absolute;inset:-60%;pointer-events:none;background:linear-gradient(105deg,transparent 34%,#e9fff51c 48%,#fff3 50%,transparent 62%);transform:translateX(-65%) rotate(-8deg);opacity:0}
.pf-folder-card:is(:hover,:focus-visible) .pf-folder-front::after{animation:pf-studio-sheen .85s cubic-bezier(.22,1,.36,1) both}
@keyframes pf-studio-sheen{0%{transform:translateX(-65%) rotate(-8deg);opacity:0}20%{opacity:1}100%{transform:translateX(65%) rotate(-8deg);opacity:0}}
[data-reveal]{transition:opacity .4s ease,transform .4s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
[data-reveal][data-reveal-motion=art]{transition-duration:.7s}
[data-reveal].is-pending{opacity:0;transform:translateY(24px)}
[data-reveal][data-reveal-motion=art].is-pending{transform:translateY(42px)}
[data-reveal].is-revealed{opacity:1;transform:translateY(0)}
.pf-flight{display:block;pointer-events:none;user-select:none;opacity:var(--flight-opacity,1);transform:translate3d(var(--flight-x,0px),var(--flight-y,0px),0) rotate(calc(var(--rest-turn,0deg) + var(--flight-turn,0deg)));}
.pf-flight img{display:block;width:100%;height:auto;position:relative;z-index:1}
.pf-object-face{position:relative;display:block;width:100%;transform:perspective(700px) translate3d(var(--object-x,0px),var(--object-y,0px),var(--object-z,0px)) rotateX(var(--object-rx,0deg)) rotateY(var(--object-ry,0deg)) rotateZ(var(--object-rz,0deg)) scale(var(--object-scale,1));transform-origin:center;pointer-events:none}
.pf-object-face::before{content:'';position:absolute;inset:15% -10%;z-index:0;background:radial-gradient(ellipse,var(--object-light,#aaa8ef22),transparent 70%);pointer-events:none}
.pf-folder-cursor{top:180px;--rest-turn:16deg;--object-light:#aecbff20;filter:drop-shadow(0 15px 10px #0005)}
.pf-about{position:relative;overflow:clip;isolation:isolate;background:radial-gradient(ellipse at 5% 80%,#eee2fc88,transparent 40%),radial-gradient(ellipse at 90% 10%,#f9edce99,transparent 42%),#f2f1e8}
.pf-about-ornaments{display:block;height:215px;margin-top:34px}
.pf-ornament-star{--rest-turn:-14deg;--object-light:#94a2c533;filter:drop-shadow(0 16px 9px #242a381c)}
.pf-ornament-flower{--rest-turn:14deg;--object-light:#fa75c63b;filter:drop-shadow(0 15px 10px #a432701b)}
.pf-contact{overflow:clip;min-height:470px;background:transparent}
.pf-contact::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 15% 95%,#548d484d,transparent 58%),radial-gradient(ellipse at 82% 45%,#8462db36,transparent 52%),linear-gradient(140deg,#0b100e,#121c16 65%,#191626)}
.pf-contact-gem{--rest-turn:-10deg;--object-light:#9275ff44;z-index:0;filter:drop-shadow(0 15px 12px #0005)}
.pf-contact-heart{--rest-turn:12deg;--object-light:#ff627d2c;position:absolute;width:78px;right:calc(var(--gutter) + 30px);bottom:48px;filter:drop-shadow(0 12px 10px #0005);z-index:0}
.pf-contact>div:not(.pf-flight),.pf-contact>form{position:relative;z-index:1}
.pf-contact .pf-button{background:linear-gradient(120deg,#b2fb86,#89e369);border:1px solid #daffc2!important;box-shadow:0 7px 30px #81df6720,inset 0 1px #f1ffe799}
.pf-contact .pf-button:hover{box-shadow:0 8px 34px #81df6736,inset 0 1px #f1ffe799}
@media(max-width:1050px){.pf-folder-cursor{top:175px}.pf-about-ornaments{height:185px}.pf-ornament-flower{width:145px}.pf-contact-heart{width:66px;bottom:42px}}
@media(max-width:900px){.pf-about-ornaments{display:block;width:100%;max-width:360px;height:180px}.pf-ornament-star{width:130px}.pf-ornament-flower{width:145px;right:0;top:22px}.pf-hero::before{width:130%;left:-32%}.pf-hero::after{width:100%;right:-38%}}
@media(max-width:760px){.pf-folder-cursor{top:222px;width:70px}[data-reveal][data-reveal-motion=art].is-pending{transform:translateY(30px)}.pf-about-ornaments{height:150px;max-width:300px;margin-top:24px}.pf-ornament-star{width:108px;left:10px}.pf-ornament-flower{width:124px;top:12px;right:28px}.pf-contact{min-height:430px}.pf-contact-gem{width:75px;top:24px;right:var(--gutter)}.pf-contact-heart{width:56px;bottom:32px;right:calc(var(--gutter) + 4px)}.pf-contact>div[data-reveal]:first-of-type>.pf-kicker{padding-right:90px}.pf-contact::before{background:radial-gradient(ellipse at 5% 95%,#548d484d,transparent 65%),radial-gradient(ellipse at 100% 20%,#8462db32,transparent 52%),#101912}.pf-hero::after{opacity:.8}}
@media(prefers-reduced-motion:reduce){[data-reveal].is-pending{opacity:1;transform:none}.pf-flight{opacity:1;transform:rotate(var(--rest-turn,0deg))}.pf-object-face{transform:none;will-change:auto!important}.pf-portrait{transform:none!important;will-change:auto}.pf-hero::before,.pf-hero::after{transform:none}.pf-folder-front::after{display:none}}
