/* Fotografía: la luz, el encuadre y la selección son el lenguaje del movimiento. */
.ph-services-v2__heading { display:grid; grid-template-columns:1fr .9fr; gap:clamp(30px,7vw,110px); align-items:end; margin-bottom:60px; }
.ph-services-v2__heading h2 { font-size:clamp(26px,3vw,46px); }
.ph-motion-control { display:inline-flex; align-items:center; gap:14px; min-height:44px; margin-top:19px; padding:8px 0; border:0; border-bottom:1px solid #5a4d65; background:none; color:#e1d5e8; font:500 10px/1.5 var(--font-body); cursor:pointer; }
.ph-motion-control>span { color:var(--amber); }.ph-motion-control[hidden] { display:none; }
.ph-service-v2 { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(35px,6vw,95px); align-items:center; padding:54px 0; border-top:1px solid rgba(255,246,224,.2); }
.ph-service-v2:last-child { padding-bottom:0; }
.ph-service-v2--reverse .ph-service-v2__copy { order:2; }.ph-service-v2--reverse .ph-scene { order:1; }
.ph-service-v2__number { display:block; margin-bottom:22px; color:#b3a0c8; font:500 9px/1.8 var(--font-body); letter-spacing:.13em; text-transform:uppercase; }
.ph-service-v2__copy>h2 { font-size:clamp(23px,2.1vw,34px); max-width:620px; }
.ph-service-v2__copy>.ph-body { margin-top:25px; }.ph-service-v2__copy>.contact-cta { margin-top:22px; }
.ph-scene { min-width:0; margin:0; }
.ph-scene>figcaption { display:flex; justify-content:space-between; align-items:baseline; gap:22px; padding-top:15px; font:500 10px/1.8 var(--font-body); color:#c9bfd0; }
.ph-scene>figcaption>small { color:#7e728a; font-size:8px; text-align:right; }
.ph-product-art,.ph-context-art { position:relative; height:clamp(290px,27vw,430px); overflow:hidden; border:1px solid #3d314b; background:radial-gradient(ellipse at 50% 100%,#22182f,transparent 70%),#0e0b13; isolation:isolate; }
.ph-product-art__grid,.ph-context-art__grid { position:absolute; inset:0; opacity:.3; background-image:linear-gradient(#4b3a5b 1px,transparent 1px),linear-gradient(90deg,#4b3a5b 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(transparent,#000); }
.ph-scene-coordinate { position:absolute; bottom:20px; left:22px; color:#9e8bab; font:500 8px/1.6 var(--font-body); letter-spacing:.17em; }
.ph-product-art__ground { position:absolute; left:16%; right:16%; top:72%; height:1px; background:linear-gradient(90deg,transparent,#a69aad,transparent); }
.ph-product-art__object { position:absolute; left:calc(50% - 47px); top:27%; width:94px; height:45%; border:1px solid #a097ad; border-radius:8px 8px 21px 21px; background:linear-gradient(90deg,#33263e,#b8a6bf 25%,#736081 65%,#2c2238); box-shadow:20px 20px 35px #040307; transform:rotate(-8deg); animation:ph-product-turn 8s ease-in-out infinite; }
.ph-product-art__object::before { content:""; position:absolute; left:13px; right:13px; top:-17px; height:19px; border:1px solid #9e94ac; border-radius:4px 4px 0 0; background:linear-gradient(90deg,#37303f,#b2a4bc,#4d3d5e); }
.ph-product-art__object>span { position:absolute; left:18%; right:18%; top:35%; bottom:25%; border:1px solid #d4c4df; background:linear-gradient(145deg,#9a87a6aa,#b0a7ba11); }
.ph-product-art__light { position:absolute; top:8%; bottom:15%; width:39%; filter:blur(20px); opacity:.2; mix-blend-mode:screen; transform-origin:center; animation:ph-light-breathe 8s ease-in-out infinite; }
.ph-product-art__light--left { left:4%; background:linear-gradient(90deg,#612bff,transparent); transform:rotate(-25deg); }.ph-product-art__light--right { right:2%; background:linear-gradient(-90deg,#ff6b3c,transparent); transform:rotate(20deg); animation-delay:-4s; }
.ph-product-art__frame { position:absolute; left:28%; right:28%; top:16%; bottom:18%; animation:ph-focus-breathe 8s ease-in-out infinite; }
.ph-product-art__frame>i { position:absolute; width:21px; height:21px; border:solid #f5cb90; }.ph-product-art__frame>i:nth-child(1) { top:0; left:0; border-width:1px 0 0 1px; }.ph-product-art__frame>i:nth-child(2) { top:0; right:0; border-width:1px 1px 0 0; }.ph-product-art__frame>i:nth-child(3) { bottom:0; left:0; border-width:0 0 1px 1px; }.ph-product-art__frame>i:nth-child(4) { bottom:0; right:0; border-width:0 1px 1px 0; }
.ph-product-art__axis { position:absolute; top:12%; bottom:13%; width:1px; left:50%; background:linear-gradient(transparent,#d2bfe233,transparent); }
.ph-context-art { background:radial-gradient(ellipse at 70% 30%,#36224c,transparent 65%),#100d17; }
.ph-context-art__horizon { position:absolute; left:8%; right:8%; top:64%; height:1px; background:#8e78964d; }
.ph-context-art__people { position:absolute; inset:19% 20% 28%; display:flex; align-items:end; justify-content:center; gap:21px; }
.ph-context-art__people>i { position:relative; width:55px; height:61%; display:block; border:1px solid #a18aaf; border-radius:45% 45% 6px 6px; background:linear-gradient(160deg,#93819d33,#42324f99); }
.ph-context-art__people>i::before { content:""; position:absolute; left:calc(50% - 15px); top:-35px; width:30px; height:30px; border:1px solid #b29dbb; border-radius:50%; background:#493952; }
.ph-context-art__people>i:nth-child(2) { height:82%; border-color:#e0a28b; background:linear-gradient(160deg,#ad705d55,#4b354799); }.ph-context-art__people>i:nth-child(2)::before { border-color:#e0a28b; }
.ph-context-art__focus { position:absolute; left:14%; top:12%; width:72%; height:61%; border:1px solid #d9c1e0; animation:ph-context-frame 10s ease-in-out infinite; }
.ph-context-art__focus::before,.ph-context-art__focus::after { content:""; position:absolute; left:33.33%; top:0; bottom:0; width:1px; background:#d9c1e022; }.ph-context-art__focus::after { left:66.66%; }
.ph-context-art__focus>span { position:absolute; inset:33.33% 0; border-top:1px solid #d9c1e022; border-bottom:1px solid #d9c1e022; }.ph-context-art__focus>b { position:absolute; width:13px; height:13px; border:1px solid #ffae00; left:calc(50% - 6px); top:calc(50% - 6px); }.ph-context-art__focus>em { position:absolute; right:-1px; top:-1px; width:22px; height:22px; border-top:2px solid #ffae00; border-right:2px solid #ffae00; }
.ph-context-art__proofs { position:absolute; display:flex; gap:8px; right:20px; bottom:20px; }
.ph-context-art__proofs>i { width:26px; height:17px; border:1px solid #706279; background:#40314e; animation:ph-proof-pulse 10s ease-in-out infinite; }.ph-context-art__proofs>i:nth-child(2) { animation-delay:-3.33s; }.ph-context-art__proofs>i:nth-child(3) { animation-delay:-6.66s; }
.ph-preparation-v2 { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1fr); align-items:center; gap:clamp(38px,9vw,145px); }
.ph-preparation-v2__portrait { width:100%; max-width:360px; min-width:0; justify-self:center; margin:0; padding:10px; border:1px solid #554562; background:#100d13; }
.ph-preparation-v2 .ph-preparation-v2__portrait>img { display:block; width:100%; height:auto; max-height:none; aspect-ratio:auto; object-fit:contain; }
.ph-preparation-v2__portrait>figcaption { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 18px; padding:15px 2px 3px; color:#bfb2c6; font:500 8px/1.8 var(--font-body); }
.ph-preparation-v2__copy>h2 { max-width:700px; font-size:clamp(24px,2.5vw,40px); }
.ph-preparation-v2__copy>.ph-body { margin-top:30px; }.ph-preparation-v2__lead { margin:30px 0 8px; color:#dfcee8; font:500 13px/1.8 var(--font-body); }
.ph-pillars-v2__heading { display:flex; justify-content:space-between; align-items:end; gap:30px; padding-bottom:45px; }.ph-pillars-v2__heading>div>h2 { font-size:clamp(26px,3vw,46px); }.ph-pillars-v2__heading>.ph-motion-control { flex:none; }
.ph-pillar-v2 { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr); gap:clamp(35px,9vw,140px); align-items:center; padding:55px 0; border-top:1px solid rgba(255,246,224,.2); }
.ph-pillar-v2__copy>h3 { margin:0; max-width:600px; font:900 clamp(21px,2vw,32px)/1.3 var(--font-title); letter-spacing:-.025em; text-transform:uppercase; }
.ph-pillar-v2__copy>.ph-body { max-width:560px; margin-top:23px; }.ph-pillar-v2__copy>.ph-service-v2__number { margin-bottom:19px; }
.ph-pillar-scene { margin:0; min-width:0; }.ph-pillar-scene>figcaption { padding-top:15px; color:#bdaeC7; font:500 10px/1.8 var(--font-body); }
.ph-pillar-art { position:relative; min-width:0; height:260px; overflow:hidden; background:radial-gradient(ellipse at 50% 50%,#271b34,transparent 65%),#0d0a12; border:1px solid #3e304b; }
.ph-reference-sheet { position:absolute; left:15%; right:15%; top:22%; bottom:22%; display:flex; align-items:center; gap:12px; }
.ph-reference-sheet>i { position:relative; display:block; flex:1; height:100%; padding:6px; border:1px solid #b9a7c5; background:#1e1726; transform:rotate(-8deg); animation:ph-reference-align 9s ease-in-out infinite; }.ph-reference-sheet>i:nth-child(2) { transform:rotate(4deg); animation-delay:-3s; }.ph-reference-sheet>i:nth-child(3) { transform:rotate(10deg); animation-delay:-6s; }
.ph-reference-sheet>i>b { display:block; height:100%; background:radial-gradient(ellipse at 55% 32%,#b49bc0 0 13%,transparent 14%),linear-gradient(160deg,#4c3662,#aa706a); }.ph-reference-sheet>i:nth-child(2)>b { background:radial-gradient(circle at 40% 40%,#c1b8cb 0 18%,transparent 19%),linear-gradient(25deg,#322254,#8d6a94); }.ph-reference-sheet>i:nth-child(3)>b { background:linear-gradient(120deg,#6d4e89 20%,#a1787a 20% 55%,#30243c 55%); }
.ph-reference-line { position:absolute; left:10%; right:10%; bottom:13%; height:1px; background:linear-gradient(90deg,#0011ff,#6a00ff,#ff2e8a,#ffae00); opacity:.5; }
.ph-direction-frame { position:absolute; inset:19% 23%; border:1px solid #c9b2d5; background:linear-gradient(135deg,#c6977844,transparent 45%),#1c1526; animation:ph-direction-shift 9s ease-in-out infinite; }
.ph-direction-frame>span { position:absolute; left:34%; top:24%; width:32%; height:55%; border-radius:48% 48% 0 0; border:1px solid #bda4c7; background:linear-gradient(90deg,#7a548e,#d9ae9b); }
.ph-direction-frame>b { position:absolute; inset:12%; border:1px solid #a58ab144; }.ph-direction-orbit { position:absolute; inset:9% 15%; border:1px solid #9d80b333; border-radius:50%; transform:rotate(-24deg); }
.ph-direction-orbit>i { position:absolute; width:13px; height:13px; border-radius:50%; background:#9f7ec6; top:12%; left:13%; box-shadow:0 0 20px #9265d2; animation:ph-proof-pulse 9s ease-in-out infinite; }.ph-direction-orbit>i:nth-child(2) { left:auto; top:auto; right:12%; bottom:12%; background:#d99e77; animation-delay:-4.5s; }
.ph-direction-spectrum { position:absolute; left:24%; right:24%; bottom:10%; height:4px; background:linear-gradient(90deg,#2639ff,#7e30cd,#db7092,#e4a35a); }.ph-direction-spectrum>i { position:absolute; top:-4px; left:10%; width:2px; height:12px; background:#fff6e0; animation:ph-spectrum-pick 9s ease-in-out infinite; }
.ph-selection-sheet { position:absolute; inset:16% 18%; display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,1fr); gap:9px; }
.ph-selection-sheet>i { position:relative; padding:5px; border:1px solid #63516e; background:#1a1420; }.ph-selection-sheet>i>b { display:block; height:100%; background:radial-gradient(ellipse at 48% 31%,#b49bc0 0 16%,transparent 17%),linear-gradient(140deg,#7a5c8e,#3b2b4c); }.ph-selection-sheet>i:nth-child(2)>b { filter:hue-rotate(20deg); }.ph-selection-sheet>i:nth-child(3)>b { filter:hue-rotate(-20deg); }.ph-selection-sheet>i:nth-child(4)>b { opacity:.65; }.ph-selection-sheet>i:nth-child(6)>b { opacity:.8; }
.ph-selection-sheet>i>span { position:absolute; right:7px; bottom:7px; color:#e4d5eb; font:500 7px/1 var(--font-body); }
.ph-selection-mark { position:absolute; left:calc(18% - 3px); top:calc(16% - 3px); width:calc((64% - 18px)/3 + 6px); height:calc((68% - 9px)/2 + 6px); border:2px solid #dca489; animation:ph-select-frame 9s ease-in-out infinite; }
.ph-delivery-master { position:absolute; left:12%; top:20%; width:33%; height:60%; border:1px solid #c2abc9; padding:9px; background:#1b1326; animation:ph-master-signal 8s ease-in-out infinite; }.ph-delivery-master>i,.ph-delivery-frame>i { display:block; width:100%; height:100%; background:radial-gradient(ellipse at 52% 31%,#c0a6ca 0 14%,transparent 15%),linear-gradient(140deg,#694b83,#372344); }.ph-delivery-master>span { position:absolute; right:-5px; top:-5px; width:10px; height:10px; background:#d9af8a; border-radius:50%; }
.ph-delivery-frame { position:absolute; padding:6px; border:1px solid #927ba3; background:#150f1f; }.ph-delivery-frame--wide { left:57%; top:18%; width:30%; height:29%; animation:ph-delivery-receive 8s ease-in-out infinite; }.ph-delivery-frame--portrait { left:63%; top:57%; width:18%; height:33%; animation:ph-delivery-receive 8s ease-in-out infinite; animation-delay:-4s; }
.ph-delivery-line { position:absolute; left:45%; top:50%; width:19%; height:1px; background:linear-gradient(90deg,#8e6aac,#e5ae8c); }.ph-delivery-line::after { content:""; position:absolute; top:-2px; left:0; width:5px; height:5px; border-radius:50%; background:#ffcb97; animation:ph-delivery-send 8s ease-in-out infinite; }
.ph-pillars-v2__contact { border-top:1px solid rgba(255,246,224,.2); padding-top:38px; display:flex; justify-content:space-between; align-items:center; gap:35px; }.ph-pillars-v2__contact>.ph-actions { margin-top:0; }
[data-ph-motion-section] *,[data-ph-motion-section] *::before,[data-ph-motion-section] *::after { animation-play-state:paused!important; }
[data-ph-motion-section].ph-motion-running *,[data-ph-motion-section].ph-motion-running *::before,[data-ph-motion-section].ph-motion-running *::after { animation-play-state:running!important; }
@keyframes ph-product-turn { 0%,100% { transform:rotate(-8deg); filter:brightness(.8); } 50% { transform:rotate(7deg); filter:brightness(1.15); } }
@keyframes ph-light-breathe { 0%,100% { opacity:.12; } 50% { opacity:.5; } }
@keyframes ph-focus-breathe { 0%,100% { transform:scale(1); opacity:.45; } 50% { transform:scale(.87); opacity:1; } }
@keyframes ph-context-frame { 0%,12%,100% { left:14%; top:12%; width:72%; height:61%; } 35%,47% { left:39%; top:13%; width:24%; height:57%; } 70%,82% { left:24%; top:17%; width:55%; height:52%; } }
@keyframes ph-proof-pulse { 0%,25%,100% { border-color:#706279; opacity:.45; } 35%,60% { border-color:#e8b293; opacity:1; } }
@keyframes ph-reference-align { 0%,20%,100% { translate:0 0; } 45%,70% { transform:rotate(0deg); translate:0 -8px; } }
@keyframes ph-direction-shift { 0%,100% { transform:rotate(-4deg); border-color:#84689b; } 50% { transform:rotate(4deg); border-color:#e3b492; } }
@keyframes ph-spectrum-pick { 0%,100% { left:10%; } 50% { left:85%; } }
@keyframes ph-select-frame { 0%,15%,100% { translate:0 0; } 30%,45% { translate:calc(100% + 3px) 0; } 60%,80% { translate:calc(100% + 3px) calc(100% + 3px); } }
@keyframes ph-master-signal { 0%,100% { border-color:#7c648f; } 40%,60% { border-color:#e8b695; } }
@keyframes ph-delivery-receive { 0%,15%,100% { opacity:.35; transform:translateX(-7px); } 40%,75% { opacity:1; transform:translateX(0); } }
@keyframes ph-delivery-send { 0%,15%,100% { left:0; opacity:0; } 25% { opacity:1; } 65%,85% { left:100%; opacity:0; } }
@media (max-width:900px) { .ph-service-v2 { gap:35px; }.ph-service-v2__copy>h2 { font-size:23px; }.ph-services-v2__heading { gap:35px; }.ph-pillar-v2 { gap:40px; }.ph-pillar-v2__copy>h3 { font-size:23px; }.ph-preparation-v2 { gap:40px; }.ph-preparation-v2__copy>h2 { font-size:25px; }.ph-pillars-v2__contact { display:block; }.ph-pillars-v2__contact>.ph-actions { margin-top:23px; }.ph-scene>figcaption { display:block; }.ph-scene>figcaption>small { display:block; text-align:left; margin-top:5px; } }
@media (max-width:680px) { .ph-services-v2__heading { grid-template-columns:1fr; gap:23px; margin-bottom:35px; }.ph-services-v2__heading h2 { font-size:29px; }.ph-service-v2,.ph-pillar-v2 { grid-template-columns:1fr; gap:30px; padding:35px 0; }.ph-service-v2--reverse .ph-service-v2__copy,.ph-service-v2--reverse .ph-scene { order:initial; }.ph-service-v2__number { margin-bottom:17px; }.ph-service-v2__copy>h2 { font-size:23px; }.ph-service-v2__copy>.ph-body { margin-top:20px; }.ph-product-art,.ph-context-art { height:280px; }.ph-preparation-v2 { grid-template-columns:1fr; gap:32px; }.ph-preparation-v2__portrait { width:min(410px,100%); margin:auto; }.ph-preparation-v2__copy>h2 { font-size:26px; }.ph-preparation-v2__copy>.ph-body { margin-top:23px; }.ph-pillars-v2__heading { align-items:start; flex-direction:column; gap:0; padding-bottom:30px; }.ph-pillars-v2__heading>div>h2 { font-size:28px; }.ph-pillar-v2__copy>h3 { font-size:23px; }.ph-pillar-art { height:250px; }.ph-scene-coordinate { font-size:7px; left:16px; bottom:15px; }.ph-context-art__proofs { right:16px; bottom:15px; }.ph-context-art__proofs>i { width:18px; height:12px; }.ph-context-art__people { gap:16px; }.ph-context-art__people>i { width:43px; }.ph-motion-control { margin-top:15px; } }
@media (prefers-reduced-motion:reduce) { [data-ph-motion-section] *,[data-ph-motion-section] *::before,[data-ph-motion-section] *::after { animation:none!important; }.ph-motion-control { display:none; } }
