/* Personal scene details. Existing room and steam rendering are retained. */
html{background:#faf9f6}
#record.framed-room{margin-top:8px}
#record .plant-touch{position:absolute;left:-320px;bottom:-92px;width:525px;padding:0;border:0;background:none;z-index:7;cursor:pointer;transform-origin:50% 98%;border-radius:45%;-webkit-tap-highlight-color:transparent}
#record.framed-room .plant-touch .hero-foreground-plant{position:static;width:100%;height:auto;margin:0;display:block;animation:none;transform:none;pointer-events:none}
#record .plant-touch:focus-visible{outline:2px solid #b99b56;outline-offset:2px}
#record .plant-touch.is-rustling{animation:polish-plant-rustle 2.25s ease-out both}
@keyframes polish-plant-rustle{0%,100%{rotate:0deg;transform:skewX(0deg)}10%{rotate:-3deg;transform:skewX(-1.5deg)}23%{rotate:3.5deg;transform:skewX(1.7deg)}38%{rotate:-2.7deg;transform:skewX(-1.2deg)}52%{rotate:2deg;transform:skewX(.8deg)}67%{rotate:-1.3deg;transform:skewX(-.5deg)}82%{rotate:.6deg;transform:skewX(.2deg)}}
/* A miniature original website, rather than a store photograph. */
#services.services-v3 .purpose-site{position:absolute;inset:0;background:#f7f2e8;color:#2d383d;font-family:'DM Sans',sans-serif;overflow:hidden}
.purpose-browser{height:25px;display:flex;align-items:center;gap:4px;padding:0 15px;background:#e3e5e1;border-bottom:1px solid #ccd0c9;color:#64716e;font:6px/1 monospace}
.purpose-browser i{width:4px;height:4px;border-radius:50%;background:#a8b2a8}.purpose-browser span{margin:auto;background:#f5f5f0;border-radius:3px;width:47%;text-align:center;padding:4px}
.purpose-navigation{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid #b3b9ae55;font-size:6px;letter-spacing:.06em}.purpose-navigation b{font-size:8px;letter-spacing:.02em}
.purpose-body{position:relative;padding:15px 22px;height:calc(100% - 104px);background-image:linear-gradient(#8d988a10 1px,transparent 1px),linear-gradient(90deg,#8d988a10 1px,transparent 1px);background-size:18px 18px}
.purpose-body small{font-size:5px;letter-spacing:.13em}.purpose-body h4{font:500 29px/1.04 'Bricolage Grotesque',sans-serif;letter-spacing:-.04em;margin:8px 0 12px}.purpose-link{font-size:5px;padding:6px 9px;background:#2c3939;color:#f4e5bf;border-radius:12px;display:inline-block}
.purpose-windows{position:absolute;right:18px;top:26px;width:42%;height:62%;transform:rotate(6deg);border:1px solid #d2b980;border-radius:6px;background:#fffdf9;box-shadow:8px 10px 0 #d5bc8155;padding:10px}
.purpose-windows::before{content:'';display:block;width:48%;height:4px;background:#b3bdad;box-shadow:0 9px #e5e6dc,0 18px #e5e6dc;margin-bottom:28px}.purpose-windows>span{display:inline-block;width:30%;height:45%;background:#d7b96c;border-radius:3px}.purpose-windows>span:nth-child(2){background:#728979}.purpose-windows>span:nth-child(3){background:#b9c4b4}
.purpose-status{position:absolute;bottom:0;left:0;right:0;height:28px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-top:1px solid #b5bea955;background:#edece3;font-size:5px;letter-spacing:.03em}.purpose-status b{font-family:monospace;font-size:7px;color:#617361}
#services.services-v3 .web-visual>.construction-load{top:0}
/* A curtained, textured studio alcove, with the heart turned toward Patrick. */
#services.services-v3 .heart-card-face{background:#342822 url('images/rain-guru-alcove.webp') center 42%/cover;clip-path:polygon(0 6%,2% 6%,2% 0,96% 0,96% 5%,100% 5%,100% 95%,97% 95%,97% 100%,3% 100%,3% 96%,0 96%)}
#services.services-v3 .heart-card-face::before{content:'';position:absolute;inset:0;background:#211817bd}
#services.services-v3 .heart-card-face::after{inset:13px;border:1px solid #d8bc7a40;border-radius:200px 200px 13px 13px}
#services.services-v3 .handmade-heart .beating-heart{scale:-1 1;rotate:-9deg}
#services.services-v3 .partner-copy{position:relative;z-index:2}
#services.services-v3 .partner-copy .partner-handwritten{color:#f0d7a6!important}
#services.services-v3 .print-visual{overflow:visible;z-index:2}
#services.services-v3 .paper-heart{width:53px;height:57px;right:12%;top:16%;color:#c35568;animation:polish-paper-love 5.4s ease-out infinite;filter:drop-shadow(0 4px 5px #7b394144)}
#services.services-v3 .paper-heart-two{width:40px;height:44px;right:25%;top:10%;animation-delay:1.1s;color:#b48d3d}
@keyframes polish-paper-love{0%,7%{opacity:0;transform:translate(0,48px) rotate(-14deg) scale(.55)}20%{opacity:.95}65%{opacity:.9;transform:translate(-14px,-70px) rotate(12deg) scale(1)}88%,100%{opacity:0;transform:translate(-24px,-145px) rotate(20deg) scale(.7)}}
/* Props straddle the side of a world; rounded photographs stay inside the scene. */
#evidence.desk-worlds.world-stage{width:min(1200px,calc(100% - 112px));margin-inline:auto}
#evidence.world-stage .world-prop-brush{left:-68px;top:30%;bottom:auto;width:310px;transform:rotate(-9deg)}
#evidence.world-stage .paint-swoosh{display:none}
#evidence.world-stage .world-prop-rose{width:228px;right:-12px;top:19%}
#evidence.world-stage .world-prop-dancers{width:235px;left:0;bottom:14%}
#evidence.world-stage .world-prop-diamond{width:225px;right:-10px;top:19%}
#evidence.world-stage .world-prop-shield{width:205px;left:-30px;top:27%;z-index:3;transform:rotate(-9deg)}
#evidence.world-stage .world-prop-shield svg{fill:none;stroke:none;filter:drop-shadow(0 14px 10px #080e0c66);animation:polish-badge-gleam 8s ease-in-out infinite}
@keyframes polish-badge-gleam{0%,100%{transform:rotate(-2deg);filter:drop-shadow(0 14px 10px #080e0c66) brightness(1)}50%{transform:rotate(3deg);filter:drop-shadow(0 14px 10px #080e0c66) brightness(1.14)}}
#evidence.world-stage .world-prop-rack{width:225px;left:-26px;bottom:7%;z-index:3}
#evidence.world-stage .rack-rig{position:relative;animation:polish-rack-hover 8s ease-in-out infinite;filter:drop-shadow(0 16px 11px #06142166)}
@keyframes polish-rack-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
#evidence.world-stage .rack-leds{position:absolute;inset:0}.rack-leds i{position:absolute;width:2.5%;height:1.5%;background:#c1fcff;border-radius:50%;left:51%;top:17%;box-shadow:0 0 8px #7fefff;animation:polish-data-light 2.8s steps(2,end) infinite}.rack-leds i:nth-child(2){top:30%;animation-delay:.8s}.rack-leds i:nth-child(3){top:44%;animation-delay:1.7s}.rack-leds i:nth-child(4){top:57%;animation-delay:.4s}
@keyframes polish-data-light{0%,100%{opacity:.15}35%{opacity:1}65%{opacity:.45}}
#evidence.world-stage .world-prop-zombie{left:-28px;bottom:-8px;width:260px;z-index:3}
#evidence.world-stage .zombie-rig{width:100%;height:auto;overflow:visible;filter:drop-shadow(0 14px 10px #08060566)}
#evidence.world-stage .zombie-near-arm{transform-origin:327px 425px;animation:polish-zombie-near 5.2s ease-in-out infinite}
#evidence.world-stage .zombie-far-arm{transform-origin:548px 422px;animation:polish-zombie-far 5.2s ease-in-out infinite}
#evidence.world-stage .zombie-torso{transform-origin:300px 980px;animation:polish-zombie-flinch 5.2s linear infinite}
@keyframes polish-zombie-near{0%,100%{transform:rotate(0)}25%{transform:rotate(-7deg)}38%{transform:rotate(2deg)}39%,46%{transform:rotate(-12deg)}43%,50%{transform:rotate(6deg)}70%{transform:rotate(-5deg)}}
@keyframes polish-zombie-far{0%,100%{transform:rotate(-2deg)}25%{transform:rotate(7deg)}38%{transform:rotate(-3deg)}39%,46%{transform:rotate(-11deg)}43%,50%{transform:rotate(5deg)}70%{transform:rotate(1deg)}}
@keyframes polish-zombie-flinch{0%,38%,44%,51%,100%{transform:rotate(0)}39%,46%{transform:rotate(-1.3deg)}41%,48%{transform:rotate(.3deg)}}
#evidence.world-stage[data-world-scene=hosting] .world-prop-rack,#evidence.world-stage[data-world-scene=ozomb] .world-prop-zombie{opacity:1;translate:0 0}
#evidence.world-stage:not([data-world-scene=hosting]) .world-prop-rack .ambient-motion,#evidence.world-stage:not([data-world-scene=security]) .world-prop-shield .ambient-motion,#evidence.world-stage:not([data-world-scene=ozomb]) .world-prop-zombie .ambient-motion{animation-play-state:paused!important}
/* Remove an inherited one-degree link tilt, so every screen fills its bezel. */
#evidence.desk-worlds.world-stage .screen-project,#evidence.desk-worlds.world-stage .screen-project:hover,#evidence.desk-worlds.world-stage .screen-project:focus-visible{transform:none!important;rotate:none!important;scale:none!important;border-radius:0;box-shadow:none}
#evidence.world-stage .screen-capture{inset:-1px;background:#151818}
#evidence.world-stage .project-screen-image{width:100%;min-height:100%;object-fit:cover}
/* Rotors rotate in their own plane; the fixed rims and hub do not spin. */
#evidence.world-stage .workstation-fan{opacity:.85;overflow:visible}
#evidence.world-stage .fan-case{left:67.25%;top:24.5%;width:7.1%;height:14.1%}
#evidence.world-stage .fan-top{opacity:.68}
#evidence.world-stage .workstation-fan svg{overflow:visible;fill:none}
#evidence.world-stage .workstation-fan .fan-rim{fill:#20231d33;stroke:#e6d8b1;stroke-width:2.5;opacity:.62}
#evidence.world-stage .workstation-fan .fan-hub{fill:#171b1b;stroke:#bcbaab;stroke-width:1}
#evidence.world-stage .fan-blades{transform-box:view-box;transform-origin:50px 50px;animation:polish-fan-spin .72s linear infinite;fill:#9c9c8c70;stroke:#d4d2bd55;stroke-width:.3}
@keyframes polish-fan-spin{to{transform:rotate(360deg)}}
#evidence.world-stage .fan-glow{fill:none;stroke:#f6dc9e;stroke-width:2;opacity:.3;animation:polish-fan-breathe 6s ease-in-out infinite}
@keyframes polish-fan-breathe{0%,100%{opacity:.15}50%{opacity:.7}}
#evidence.world-stage .tower-light{width:2px;overflow:hidden;background:#a8987133;box-shadow:0 0 5px #f6dfad77;animation:none}
#evidence.world-stage .tower-light::after{content:'';position:absolute;left:0;top:-65%;width:100%;height:65%;background:linear-gradient(transparent,#fff7d7,transparent);animation:polish-light-sweep 5.5s ease-in-out infinite}
@keyframes polish-light-sweep{to{translate:0 260%}}
/* A shorter final invitation. Atmosphere is clipped separately from the flyby. */
#idea.composed-contact.framed-contact.contact-finale{margin-top:34px;margin-bottom:48px;overflow:visible;background:none;box-shadow:none}
#idea.contact-finale .contact-scene{overflow:visible;padding:45px 36px 23px;border-radius:27px 27px 0 0}
#idea .contact-atmosphere{position:absolute;inset:0;overflow:hidden;border-radius:27px 27px 0 0;pointer-events:none;background:#a7c1d4;z-index:-1}
#idea.contact-finale .composer-stage{margin-top:39px;padding-bottom:0}
#idea.contact-finale .composer-bar{min-height:35px;height:35px;padding-inline:22px}
#idea.contact-finale .composer-address{padding:8px 22px 10px}
#idea.contact-finale #idea-form{padding:15px 22px 17px}
#idea.contact-finale .sender-fields{padding-bottom:10px}
#idea.contact-finale .message-field{padding-top:11px}
#idea.contact-finale .message-field textarea{height:120px;min-height:110px}
#idea.contact-finale .composer-toolbar{padding-top:9px;margin-top:11px}
#idea.contact-finale .privacy-note{margin-top:11px;font-size:9px}
#idea.contact-finale .contact-ticket{margin-top:18px}
#idea.contact-finale .signature-footer.composed-footer.site-footer{padding:16px 36px 18px;border-radius:0 0 27px 27px}
#idea .signature-footer .footer-left>p{margin:9px 0;font-size:10px;line-height:1.7}
#idea .signature-footer .footer-makers-mark{gap:12px}
#idea .signature-footer .footer-makers-mark svg{width:43px;height:43px}
#idea .signature-footer .back-to-good{min-height:90px}
#idea .sky-flights{position:absolute;inset:0;z-index:7;overflow:visible;pointer-events:none;height:100%}
#idea.contact-finale .patrick-flight{left:0;right:auto;top:-22px;width:620px;height:auto;opacity:0}
#idea.contact-finale .contact-performance .patrick-flight{animation:polish-full-crossing 12s linear 5s 1 both}
@keyframes polish-full-crossing{0%{opacity:1;transform:translateX(calc(100vw + 80px)) translateY(0) rotate(1deg)}100%{opacity:1;transform:translateX(-760px) translateY(18px) rotate(-2deg)}}
@media(min-width:701px) and (max-width:1100px){
 #record .plant-touch{width:470px;left:-295px;bottom:-90px}
 #evidence.world-stage .world-prop-brush{width:240px;left:-32px}#evidence.world-stage .world-prop-rose{width:185px}#evidence.world-stage .world-prop-diamond{width:185px}#evidence.world-stage .world-prop-shield{width:155px}#evidence.world-stage .world-prop-rack{width:180px}#evidence.world-stage .world-prop-zombie{width:205px}
 .purpose-body h4{font-size:23px}.purpose-navigation{padding:11px 15px}
 #idea.contact-finale .contact-scene{padding-inline:26px}
}
@media(max-width:700px){
 #record .plant-touch{width:255px;left:-184px;bottom:-15px}
 #record.framed-room{margin-top:7px}
 .purpose-browser{height:19px}.purpose-navigation{padding:11px 13px;font-size:4px}.purpose-navigation b{font-size:6px}.purpose-body{padding:10px 14px}.purpose-body h4{font-size:24px}.purpose-body small{font-size:4px}.purpose-windows{right:13px;padding:6px;top:20px}.purpose-status{height:24px;padding-inline:12px;font-size:4px}
 #services.services-v3 .paper-heart{width:42px;height:46px;right:13%;top:14%}#services.services-v3 .paper-heart-two{width:32px;height:35px;right:29%;top:9%}
 #services.services-v3 .heart-card-face{background-position:58% center}
 #evidence.desk-worlds.world-stage{width:calc(100% - 46px);margin-inline:auto}
 #evidence.world-stage .world-prop-brush{left:-30px;top:44%;bottom:auto;width:155px;transform:rotate(-12deg)}
 #evidence.world-stage .world-prop-rose{right:-8px;top:27%;width:125px}#evidence.world-stage .world-prop-dancers{right:-1%;width:105px}
 #evidence.world-stage .world-prop-diamond{right:-7px;top:28%;width:124px}#evidence.world-stage .world-prop-shield{left:-15px;top:42%;width:105px}
 #evidence.world-stage .world-prop-rack{left:-15px;bottom:20%;width:123px}#evidence.world-stage .world-prop-zombie{left:-15px;bottom:44px;width:130px}
 #idea.composed-contact.framed-contact.contact-finale{margin-top:24px;margin-bottom:30px}
 #idea.contact-finale .contact-scene{padding:29px 21px 21px;border-radius:21px 21px 0 0}#idea .contact-atmosphere{border-radius:21px 21px 0 0}
 #idea.contact-finale .composer-stage{margin-top:105px}#idea.composed-contact.framed-contact .note-angel{width:250px;right:-16px;top:-126px}
 #idea.contact-finale .message-field textarea{height:116px;min-height:110px}#idea.contact-finale #idea-form{padding:13px 16px 15px}
 #idea.contact-finale .signature-footer.composed-footer.site-footer{padding:17px 20px;border-radius:0 0 21px 21px}
 #idea.composed-contact.framed-contact .contact-ticket{max-width:260px;margin:15px auto 0}
 #idea.contact-finale .contact-performance .patrick-flight{top:245px;width:390px;animation-name:polish-full-crossing-phone}
 @keyframes polish-full-crossing-phone{0%{opacity:1;transform:translateX(calc(100vw + 80px)) translateY(0) rotate(1deg)}100%{opacity:1;transform:translateX(-450px) translateY(-8px) rotate(-2deg)}}
}
@media(prefers-reduced-motion:reduce){
 #record .plant-touch.is-rustling{animation:none}
 #evidence.world-stage :is(.fan-blades,.fan-glow,.rack-rig,.rack-leds i,.zombie-near-arm,.zombie-far-arm,.zombie-torso,.world-prop-shield svg),#evidence.world-stage .tower-light::after,#services.services-v3 .paper-heart{animation:none!important}
 #services.services-v3 .paper-heart{opacity:.55;transform:none}
 #idea.contact-finale .contact-performance .patrick-flight{display:none;animation:none!important}
}
body.previews-paused #evidence.world-stage .tower-light::after,body:not(.previews-active) #evidence.world-stage .tower-light::after{animation-play-state:paused}
@media print{#record .plant-touch,#evidence .world-prop-rack,#evidence .world-prop-zombie{display:none}#idea .contact-atmosphere{display:none}}
