
/* ==========================================================================
   STAR MARK PHOTOGRAPHY — clean HTML/CSS/SVG implementation
   ========================================================================== */
body[data-world-v47="photo"]{
  --world-a:#71e3ff;
  --world-b:#f0c76a;
  --world-a-rgb:113,227,255;
  --world-b-rgb:240,199,106;
  --accent:#74ddff;
  --accent2:#c47cff;
  --accent-rgb:116,221,255;
  --accent2-rgb:196,124,255;
}
html.photo-entry-pending,
body.photo-intro-locked{overflow:hidden!important}
body.photo-intro-locked{overscroll-behavior:none}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.no-js .world-arrival-v47--photo,.no-js .photo-entry{display:none!important}

/* Persistent photographic atmosphere */
.world-background-v47--photo{opacity:.58}
.world-background-v47--photo .world-background-v47__grid{
  opacity:.1;
  background-size:84px 84px;
  transform:perspective(800px) rotateX(66deg) translateY(34%);
}
.world-background-v47--photo .world-background-v47__orbits span{
  border-radius:18%;
  border-style:dashed;
}
.world-background-v47--photo .world-token-v47{
  border-color:rgba(113,227,255,.2);
  border-radius:5px;
  color:rgba(218,244,255,.32);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.12em;
}
.photo-focus-field{position:absolute;inset:0;overflow:hidden}
.photo-focus-field__frame{
  position:absolute;width:92px;height:64px;border:1px solid rgba(113,227,255,.14);
  animation:photo-focus-drift 13s ease-in-out infinite alternate;
}
.photo-focus-field__frame::before,.photo-focus-field__frame::after{
  content:"";position:absolute;width:17px;height:17px;border-color:rgba(240,199,106,.35);border-style:solid
}
.photo-focus-field__frame::before{left:-2px;top:-2px;border-width:2px 0 0 2px}
.photo-focus-field__frame::after{right:-2px;bottom:-2px;border-width:0 2px 2px 0}
.photo-focus-field__frame--one{left:12%;top:28%;transform:rotate(-4deg)}
.photo-focus-field__frame--two{right:9%;top:65%;width:128px;height:86px;animation-delay:-6s;transform:rotate(5deg)}
.photo-focus-field__meter{
  position:absolute;right:5vw;top:115vh;color:rgba(255,255,255,.13);
  font:700 .62rem ui-monospace,monospace;letter-spacing:.16em;white-space:nowrap
}
.photo-atmosphere{position:fixed;z-index:1;inset:0;overflow:hidden;pointer-events:none;opacity:.52}
.photo-atmosphere__beam{position:absolute;top:-18%;width:28vw;height:85vh;filter:blur(18px);opacity:.12;transform-origin:top}
.photo-atmosphere__beam--left{left:-8%;transform:rotate(-15deg);background:linear-gradient(180deg,rgba(113,227,255,.55),transparent)}
.photo-atmosphere__beam--right{right:-8%;transform:rotate(15deg);background:linear-gradient(180deg,rgba(240,199,106,.46),transparent)}
.photo-atmosphere__bokeh{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 35px rgba(113,227,255,.04);animation:photo-bokeh 14s ease-in-out infinite alternate}
.photo-atmosphere__bokeh--one{width:160px;height:160px;left:4vw;top:78vh}
.photo-atmosphere__bokeh--two{width:80px;height:80px;right:6vw;top:36vh;animation-delay:-5s}
.photo-atmosphere__bokeh--three{width:230px;height:230px;right:18vw;top:178vh;animation-delay:-9s}
.photo-atmosphere__focus{position:absolute;width:74px;height:52px;border:1px solid rgba(255,76,99,.16);animation:photo-focus-drift 11s ease-in-out infinite alternate}
.photo-atmosphere__focus::before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border:1px solid rgba(255,76,99,.28)}
.photo-atmosphere__focus--one{left:7vw;top:142vh}
.photo-atmosphere__focus--two{right:8vw;top:240vh;animation-delay:-4s}
.photo-atmosphere__code{position:absolute;left:5vw;top:330vh;color:rgba(255,255,255,.1);font:800 .58rem ui-monospace,monospace;letter-spacing:.2em}

/* 2–3 second warp arrival */
.world-arrival-v47--photo{
  z-index:9100;
  background:
    radial-gradient(circle at 50% 47%,rgba(113,227,255,.17),transparent 24%),
    radial-gradient(circle at 50% 47%,rgba(196,124,255,.11),transparent 40%),
    #000;
}
.world-arrival-v47--photo.is-leaving{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .38s ease,visibility .38s ease}
.world-arrival-v47--photo .world-arrival-v47__wormhole{top:46%;width:min(70vw,820px)}
.photo-warp-icons{position:absolute;z-index:4;inset:0;pointer-events:none}
.photo-warp-icon{
  --x:0vw;--y:0vh;--r:0deg;--delay:0s;
  position:absolute;left:50%;top:46%;width:clamp(52px,6.5vw,94px);aspect-ratio:1;
  display:grid;place-items:center;color:#d8f7ff;opacity:0;
  filter:drop-shadow(0 0 18px rgba(113,227,255,.65));
  animation:photo-warp-fly 1.58s var(--delay) cubic-bezier(.12,.74,.18,1) both;
}
.photo-warp-icon svg{width:100%;height:100%;overflow:visible}
.photo-warp-icon path,.photo-warp-icon circle,.photo-warp-icon rect{
  fill:rgba(4,9,18,.82);stroke:currentColor;stroke-width:3;vector-effect:non-scaling-stroke
}
.photo-warp-icon--camera{--x:-42vw;--y:-24vh;--r:-16deg;--delay:.08s}
.photo-warp-icon--lens{--x:38vw;--y:-29vh;--r:22deg;--delay:.18s;color:#f0c76a}
.photo-warp-icon--flash{--x:-37vw;--y:30vh;--r:14deg;--delay:.28s;color:#c47cff}
.photo-warp-icon--tripod{--x:40vw;--y:27vh;--r:-15deg;--delay:.38s}
.photo-warp-icon--card{--x:-15vw;--y:-42vh;--r:9deg;--delay:.48s;color:#f0c76a}
.photo-warp-icon--sd{--x:18vw;--y:40vh;--r:-8deg;--delay:.58s;color:#ff6680}
.world-arrival-v47--photo .world-arrival-v47__copy{bottom:max(6.5vh,46px);animation-delay:.72s}
.world-arrival-v47--photo .world-arrival-v47__copy strong{font-size:clamp(2rem,4.3vw,4.7rem)}
.world-arrival-v47--photo .world-arrival-v47__skip{background:rgba(0,0,0,.48)}

/* Immersive camera intro */
.photo-entry{
  position:fixed;z-index:8900;inset:0;width:100vw;height:100dvh;min-height:100svh;
  overflow:hidden;isolation:isolate;color:#fff;
  background:
    radial-gradient(circle at 50% 73%,rgba(113,227,255,.14),transparent 31%),
    radial-gradient(circle at 18% 24%,rgba(196,124,255,.11),transparent 27%),
    radial-gradient(circle at 82% 19%,rgba(240,199,106,.09),transparent 25%),
    linear-gradient(155deg,#010206 0%,#060b17 52%,#010206 100%);
  opacity:1;visibility:visible;pointer-events:auto;
  transition:opacity .62s ease,visibility .62s ease;
}
.photo-entry[aria-hidden="true"]{opacity:0;visibility:hidden;pointer-events:none}
.photo-entry::before{
  content:"";position:absolute;inset:0;opacity:.14;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:74px 74px;mask-image:radial-gradient(circle at 50% 58%,#000 5%,transparent 76%);
}
.photo-entry__ambient{position:absolute;inset:0;pointer-events:none}
.photo-entry__ring{position:absolute;left:50%;top:66%;aspect-ratio:1;border:1px solid rgba(113,227,255,.09);border-radius:50%;transform:translate(-50%,-50%);animation:photo-entry-ring 26s linear infinite}
.photo-entry__ring--one{width:min(84vw,1100px)}
.photo-entry__ring--two{width:min(58vw,760px);border-style:dashed;border-color:rgba(240,199,106,.12);animation-direction:reverse;animation-duration:38s}
.photo-entry__data{
  position:absolute;padding:7px 10px;border:1px solid rgba(255,255,255,.1);border-radius:8px;
  color:rgba(255,255,255,.28);background:rgba(2,5,12,.35);font:800 .62rem ui-monospace,monospace;letter-spacing:.14em;
  animation:photo-data-float 8s ease-in-out infinite alternate
}
.photo-entry__data--one{left:5vw;top:15vh;transform:rotate(-5deg)}
.photo-entry__data--two{right:5vw;top:17vh;transform:rotate(6deg);animation-delay:-3s}
.photo-entry__data--three{right:7vw;bottom:8vh;transform:rotate(-7deg);animation-delay:-5s}
.photo-entry__copy{
  position:absolute;z-index:30;left:50%;top:max(22px,4.5vh);width:min(calc(100% - 36px),980px);
  transform:translateX(-50%);text-align:center
}
.photo-entry__eyebrow{margin:0 0 7px;color:#f0c76a;font-size:.62rem;font-weight:950;letter-spacing:.24em}
.photo-entry__title{
  font-family:"Arial Narrow","Helvetica Neue",Arial,sans-serif;font-size:clamp(2.65rem,5vw,5.8rem);
  font-weight:950;line-height:.9;letter-spacing:-.06em;text-wrap:balance;text-shadow:0 20px 70px rgba(0,0,0,.7)
}
.photo-entry__copy>p:last-child{margin:.75rem 0 0;color:rgba(255,255,255,.68);font-size:clamp(.78rem,1.1vw,.98rem)}
.photo-entry__camera{
  position:absolute;z-index:12;left:50%;bottom:-5.5%;width:min(66vw,900px);aspect-ratio:900/590;
  transform:translateX(-50%);filter:drop-shadow(0 28px 45px rgba(0,0,0,.55))
}
.photo-entry__camera-svg{width:100%;height:100%}
.photo-entry__shutter{
  position:absolute;z-index:20;left:50%;top:60.2%;width:clamp(106px,13.2vw,178px);aspect-ratio:1;
  transform:translate(-50%,-50%);display:grid;place-items:center;border:1px solid rgba(240,199,106,.68);
  border-radius:50%;color:#fff;background:radial-gradient(circle at 42% 32%,rgba(90,119,173,.5),rgba(2,5,10,.92) 58%);
  box-shadow:0 0 0 12px rgba(2,6,13,.52),0 0 0 15px rgba(113,227,255,.16),0 0 52px rgba(113,227,255,.24);
  cursor:pointer;transition:transform .24s ease,box-shadow .24s ease
}
.photo-entry__shutter:hover{transform:translate(-50%,-50%) scale(1.055);box-shadow:0 0 0 12px rgba(2,6,13,.62),0 0 0 16px rgba(240,199,106,.28),0 0 70px rgba(113,227,255,.42)}
.photo-entry__shutter:active{transform:translate(-50%,-50%) scale(.96)}
.photo-entry__shutter>span:last-child{position:relative;z-index:4;padding:.35rem .65rem;border-radius:999px;color:#fff;background:rgba(0,0,0,.54);font-size:.6rem;font-weight:950;letter-spacing:.2em}
.photo-entry__lens-rings,.photo-entry__lens-rings i{position:absolute;inset:0;border-radius:50%}
.photo-entry__lens-rings{overflow:hidden}
.photo-entry__lens-rings i{border:1px solid rgba(255,255,255,.1)}
.photo-entry__lens-rings i:nth-child(2){inset:13%;border-color:rgba(113,227,255,.25);animation:photo-lens-spin 8s linear infinite}
.photo-entry__lens-rings i:nth-child(3){inset:29%;border-style:dashed;border-color:rgba(240,199,106,.32);animation:photo-lens-spin 5s linear reverse infinite}
.photo-entry__studio{
  position:absolute;z-index:8;bottom:-1%;width:min(22vw,270px);height:min(68vh,530px);
  filter:drop-shadow(0 22px 30px rgba(0,0,0,.5))
}
.photo-entry__studio>svg{position:absolute;bottom:0;width:100%;height:100%}
.photo-entry__studio--left{left:1.5vw}
.photo-entry__studio--right{right:1.5vw}
.photo-entry__softbox{position:absolute;top:5%;width:84px;height:120px;transform:perspective(400px) rotateY(var(--softbox-rotate,12deg));background:linear-gradient(135deg,#fff9df,#b5deee);clip-path:polygon(15% 0,85% 0,100% 100%,0 100%);box-shadow:0 0 52px rgba(213,241,255,.24)}
.photo-entry__softbox::after{content:"";position:absolute;left:50%;top:100%;width:7px;height:320px;transform:translateX(-50%);background:linear-gradient(#8a93a3,#283143)}
.photo-entry__softbox i{position:absolute;left:50%;top:100%;width:90px;height:6px;transform:translate(-50%,310px);background:#475164}
.photo-entry__softbox b{display:none}
.photo-entry__softbox--left{left:-5%;--softbox-rotate:12deg}
.photo-entry__softbox--right{right:-5%;--softbox-rotate:-12deg}
.photo-entry__result{
  position:absolute;z-index:50;left:50%;bottom:max(22px,4vh);transform:translateX(-50%);
  min-width:min(88vw,430px);padding:11px 18px;border:1px solid rgba(240,199,106,.32);border-radius:999px;
  color:#fff;background:rgba(2,5,12,.72);backdrop-filter:blur(12px);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-align:center;
  opacity:0;transition:opacity .2s
}
.photo-entry__result:not(:empty){opacity:1}
.photo-entry__flash{position:absolute;z-index:80;inset:0;background:#fff;opacity:0;pointer-events:none}
.photo-entry.is-flashing .photo-entry__flash{animation:photo-shutter-flash .7s ease both}
.photo-entry.is-flashing .photo-entry__camera{animation:photo-camera-kick .34s ease both}
.photo-entry.is-clearing{opacity:0;visibility:hidden;pointer-events:none}

/* Main hero */
.photo-main-hero::before{
  background:radial-gradient(ellipse,rgba(113,227,255,.08),transparent 67%);
}
.photo-camera-board{
  min-height:640px;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 52%,rgba(113,227,255,.13),transparent 34%),
    radial-gradient(circle at 84% 16%,rgba(240,199,106,.09),transparent 26%),
    linear-gradient(145deg,rgba(14,23,43,.97),rgba(3,7,16,.98));
}
.photo-camera-board::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.035) 48%,transparent 64%);
  transform:translateX(-120%);animation:photo-board-sheen 8s ease-in-out infinite
}
.photo-camera-board__svg{position:absolute;left:50%;top:52%;width:94%;transform:translate(-50%,-50%)}
.photo-camera-board__focus{animation:photo-focus-breathe 2.8s ease-in-out infinite}
.photo-camera-board__meters{
  position:absolute;z-index:3;left:7%;right:7%;bottom:79px;display:flex;justify-content:space-between;gap:8px;
  color:rgba(223,244,255,.72);font:800 .62rem ui-monospace,monospace;letter-spacing:.12em
}
.photo-camera-board__meters span{padding:6px 9px;border:1px solid rgba(113,227,255,.16);border-radius:7px;background:rgba(2,5,12,.42)}
.photo-camera-board .design-board__caption{z-index:4}

/* Interactive camera-held portfolio */
.photo-portfolio-section{position:relative}
.photo-portfolio-section::before{
  content:"";position:absolute;z-index:-1;left:50%;top:63%;width:min(94vw,1260px);height:580px;
  transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(113,227,255,.1),transparent 70%);filter:blur(18px)
}
.photo-portfolio-camera{
  position:relative;width:100%;min-height:620px;padding:0;overflow:hidden;border:1px solid rgba(113,227,255,.22);
  border-radius:38px;color:#fff;background:
    radial-gradient(circle at 52% 45%,rgba(113,227,255,.08),transparent 36%),
    radial-gradient(circle at 86% 15%,rgba(240,199,106,.08),transparent 28%),
    linear-gradient(180deg,#070b14,#020409);
  box-shadow:0 34px 110px rgba(0,0,0,.47);cursor:pointer;isolation:isolate
}
.photo-portfolio-camera::before{
  content:"";position:absolute;inset:0;opacity:.13;
  background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:64px 64px;mask-image:radial-gradient(circle,#000,transparent 80%)
}
.photo-portfolio-camera__stage{position:absolute;inset:2% 2% 8%;display:grid;place-items:center}
.photo-portfolio-camera__svg{width:min(96%,1080px);height:auto;overflow:visible;transition:transform .45s var(--ease)}
.photo-portfolio-camera:hover .photo-portfolio-camera__svg{transform:translateY(-8px) scale(1.01)}
.photo-portfolio-camera__door{
  transform-box:fill-box;transform-origin:right center;transition:transform .72s cubic-bezier(.2,.78,.2,1),opacity .35s
}
.photo-portfolio-camera__screen-ui{opacity:0;filter:brightness(.2);transition:opacity .35s .2s,filter .48s .2s}
.photo-portfolio-camera.is-opening .photo-portfolio-camera__door,
.photo-portfolio-camera[aria-expanded="true"] .photo-portfolio-camera__door{transform:perspective(900px) rotateY(-104deg)}
.photo-portfolio-camera.is-opening .photo-portfolio-camera__screen-ui,
.photo-portfolio-camera[aria-expanded="true"] .photo-portfolio-camera__screen-ui{opacity:1;filter:brightness(1)}
.photo-portfolio-camera__led-dot{animation:photo-led 1.1s steps(1,end) infinite}
.photo-portfolio-camera__status{
  position:absolute;z-index:4;left:30px;top:28px;display:flex;align-items:center;gap:9px;
  color:rgba(255,255,255,.58);font:850 .63rem ui-monospace,monospace;letter-spacing:.16em
}
.photo-portfolio-camera__status i{width:8px;height:8px;border-radius:50%;background:#ff465e;box-shadow:0 0 16px rgba(255,70,94,.8);animation:photo-led 1.1s steps(1,end) infinite}
.photo-portfolio-camera.is-opening .photo-portfolio-camera__status{color:#a8f3ff}
.photo-portfolio-camera.is-opening .photo-portfolio-camera__status i{background:#66edff;box-shadow:0 0 18px rgba(102,237,255,.85);animation:none}
.photo-portfolio-camera__cta{
  position:absolute;z-index:5;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;
  min-height:48px;padding:0 20px;border:1px solid rgba(240,199,106,.32);border-radius:999px;
  background:rgba(2,5,12,.74);backdrop-filter:blur(12px);box-shadow:0 16px 45px rgba(0,0,0,.35);
  font-size:.75rem;font-weight:900;letter-spacing:.08em;white-space:nowrap
}
.photo-portfolio-camera__cta svg{width:18px;height:18px}

/* Viewfinder dialog and powered-screen sequence */
.photo-portfolio-dialog{
  width:min(1240px,calc(100vw - 22px));max-height:calc(100dvh - 22px);padding:0;overflow:hidden;
  border:1px solid rgba(113,227,255,.32);border-radius:30px;color:#fff;background:#020409;
  box-shadow:0 50px 190px rgba(0,0,0,.88)
}
.photo-portfolio-dialog::backdrop{background:rgba(0,0,0,.89);backdrop-filter:blur(13px)}
.photo-monitor-sequence{
  position:relative;min-height:min(820px,calc(100dvh - 22px));max-height:calc(100dvh - 22px);
  overflow:auto;overscroll-behavior:contain;background:
    radial-gradient(circle at 50% 12%,rgba(113,227,255,.12),transparent 30%),
    linear-gradient(180deg,#09101d,#020409)
}
.photo-portfolio-dialog .world-portfolio-v47__close{
  position:fixed;z-index:80;right:max(20px,calc((100vw - min(1240px,calc(100vw - 22px)))/2 + 16px));top:calc((100dvh - min(820px,calc(100dvh - 22px)))/2 + 16px);
  float:none;margin:0;background:rgba(2,5,12,.88);backdrop-filter:blur(12px)
}
.photo-monitor-sequence__status{
  position:absolute;z-index:70;left:50%;top:50%;transform:translate(-50%,-50%);
  padding:10px 17px;border:1px solid rgba(113,227,255,.24);border-radius:999px;color:#bceeff;
  background:rgba(2,5,12,.76);font:850 .68rem ui-monospace,monospace;letter-spacing:.15em;text-align:center;
  transition:opacity .3s,transform .3s
}
.photo-monitor-sequence__hardware{
  position:absolute;z-index:50;inset:0;display:grid;place-items:center;overflow:hidden;pointer-events:none;
  background:radial-gradient(circle at 50% 50%,rgba(113,227,255,.08),transparent 32%),rgba(0,0,0,.86);
  transition:opacity .45s .2s,visibility .45s .2s
}
.photo-monitor-sequence__door{
  position:relative;width:min(64vw,730px);aspect-ratio:16/10;display:grid;place-content:center;gap:8px;
  border:10px solid #3c4658;border-radius:22px;color:#8793a7;background:
    linear-gradient(rgba(255,255,255,.025),rgba(255,255,255,0)),
    #06090f;box-shadow:0 35px 100px rgba(0,0,0,.76),inset 0 0 0 2px #111827;
  transform-origin:right center;transition:transform .78s cubic-bezier(.18,.8,.2,1),filter .45s
}
.photo-monitor-sequence__door::before{content:"";position:absolute;inset:7%;border:2px solid #151d2a;border-radius:9px}
.photo-monitor-sequence__door i{position:absolute;right:18px;top:50%;width:8px;height:65%;transform:translateY(-50%);border-radius:4px;background:#687286}
.photo-monitor-sequence__door b{position:relative;z-index:2;color:#f0c76a;font-size:clamp(1.2rem,3vw,2.2rem);letter-spacing:.22em;text-align:center}
.photo-monitor-sequence__door small{position:relative;z-index:2;font-size:.64rem;letter-spacing:.28em;text-align:center}
.photo-monitor-sequence__hinge{position:absolute;z-index:3;left:calc(50% + min(32vw,365px) - 8px);top:50%;width:20px;height:min(48vw,480px);max-height:64%;transform:translateY(-50%);border-radius:9px;background:linear-gradient(90deg,#1d2635,#778296,#1b2330);box-shadow:0 0 30px rgba(0,0,0,.7)}
.photo-monitor-sequence__power{position:absolute;z-index:4;left:calc(50% + min(32vw,365px) + 28px);top:calc(50% - min(20vw,210px));width:22px;height:22px;border:2px solid #4e5b6d;border-radius:50%}
.photo-monitor-sequence__power i{position:absolute;inset:5px;border-radius:50%;background:#ff465e;box-shadow:0 0 16px rgba(255,70,94,.8);animation:photo-led 1s steps(1,end) infinite}
.photo-viewfinder{
  position:relative;min-height:min(820px,calc(100dvh - 22px));padding:clamp(65px,7vw,94px) clamp(22px,5vw,72px) 48px;
  opacity:0;transform:scale(.965);filter:brightness(.2);transition:opacity .52s .34s,transform .52s .34s,filter .52s .34s;
  background:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),
    radial-gradient(circle at 50% 35%,rgba(32,70,108,.34),transparent 60%);
  background-size:72px 72px,72px 72px,auto
}
.photo-portfolio-dialog[data-phase="opening"] .photo-monitor-sequence__door,
.photo-portfolio-dialog[data-phase="ready"] .photo-monitor-sequence__door{transform:perspective(1200px) rotateY(-108deg) translateX(4%)}
.photo-portfolio-dialog[data-phase="opening"] .photo-monitor-sequence__power i,
.photo-portfolio-dialog[data-phase="ready"] .photo-monitor-sequence__power i{background:#69edff;box-shadow:0 0 18px rgba(105,237,255,.9);animation:none}
.photo-portfolio-dialog[data-phase="ready"] .photo-monitor-sequence__hardware{opacity:0;visibility:hidden}
.photo-portfolio-dialog[data-phase="ready"] .photo-monitor-sequence__status{opacity:0;transform:translate(-50%,-38%)}
.photo-portfolio-dialog[data-phase="ready"] .photo-viewfinder{opacity:1;transform:none;filter:brightness(1)}
.photo-portfolio-dialog[data-phase="closing"] .photo-viewfinder{opacity:0;transform:scale(.97);filter:brightness(.1);transition-delay:0s}
.photo-portfolio-dialog[data-phase="closing"] .photo-monitor-sequence__hardware{opacity:1;visibility:visible;transition-delay:0s}
.photo-portfolio-dialog[data-phase="closing"] .photo-monitor-sequence__door{transform:none;transition-delay:.18s}
.photo-viewfinder__hud{
  position:absolute;left:clamp(22px,4vw,54px);right:clamp(70px,6vw,92px);top:22px;display:flex;justify-content:space-between;gap:12px;
  color:rgba(255,255,255,.82);font:850 clamp(.55rem,.9vw,.72rem) ui-monospace,monospace;letter-spacing:.1em
}
.photo-viewfinder__rec{display:flex;align-items:center;gap:7px;color:#fff}
.photo-viewfinder__rec i{width:9px;height:9px;border-radius:50%;background:#ff465e;box-shadow:0 0 16px rgba(255,70,94,.8);animation:photo-led 1s steps(1,end) infinite}
.photo-viewfinder__copy{max-width:850px}
.photo-viewfinder__copy h2{max-width:900px;margin:.2rem 0 1rem;font-family:"Arial Narrow","Helvetica Neue",Arial,sans-serif;font-size:clamp(2.6rem,5vw,5.5rem);line-height:.92;letter-spacing:-.055em}
.photo-viewfinder__copy>p:last-child{max-width:780px;color:#aeb9ca}
.photo-viewfinder__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:30px}
.photo-viewfinder__piece{min-height:280px;border-color:rgba(113,227,255,.2);background:#050912}
.photo-viewfinder__piece picture,.photo-viewfinder__piece img{width:100%;height:100%}
.photo-viewfinder__piece img{object-fit:cover}
.photo-viewfinder__piece:nth-child(1) img{object-position:center}
.photo-viewfinder__piece:nth-child(2) img{object-position:center 25%}
.photo-viewfinder__piece:nth-child(3) img{object-position:center 18%}
.photo-viewfinder__piece:nth-child(4) img{object-position:center}
.photo-viewfinder__note{margin:16px 0 0;color:rgba(255,255,255,.46);font-size:.72rem}
.photo-viewfinder__focus-frame{position:absolute;z-index:2;left:50%;top:58%;width:88px;height:62px;transform:translate(-50%,-50%);pointer-events:none;opacity:.58}
.photo-viewfinder__focus-frame i{position:absolute;width:20px;height:20px;border-color:#ff526b;border-style:solid}
.photo-viewfinder__focus-frame i:nth-child(1){left:0;top:0;border-width:2px 0 0 2px}
.photo-viewfinder__focus-frame i:nth-child(2){right:0;top:0;border-width:2px 2px 0 0}
.photo-viewfinder__focus-frame i:nth-child(3){left:0;bottom:0;border-width:0 0 2px 2px}
.photo-viewfinder__focus-frame i:nth-child(4){right:0;bottom:0;border-width:0 2px 2px 0}

/* Responsive */
@media (max-width:1050px){
  .photo-entry__camera{width:min(72vw,760px);bottom:-2%}
  .photo-entry__studio{width:21vw;height:55vh}
  .photo-camera-board{min-height:560px}
  .photo-portfolio-camera{min-height:540px}
  .photo-viewfinder__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .photo-viewfinder__piece{min-height:250px}
}
@media (max-width:760px){
  html.photo-entry-pending,body.photo-intro-locked{min-height:100%;height:100%}
  .world-arrival-v47--photo .world-arrival-v47__copy{bottom:9vh}
  .world-arrival-v47--photo .world-arrival-v47__copy small{font-size:.7rem}
  .photo-warp-icon{width:54px}
  .photo-warp-icon--camera{--x:-44vw;--y:-27vh}.photo-warp-icon--lens{--x:40vw;--y:-30vh}.photo-warp-icon--flash{--x:-43vw;--y:27vh}.photo-warp-icon--tripod{--x:42vw;--y:24vh}
  .photo-entry__copy{top:max(20px,3.5vh);width:calc(100% - 28px)}
  .photo-entry__eyebrow{font-size:.54rem}
  .photo-entry__title{font-size:clamp(2.35rem,11vw,4rem);line-height:.91}
  .photo-entry__copy>p:last-child{margin-top:.55rem}
  .photo-entry__studio{opacity:.42;width:33vw;height:42vh;bottom:-4%}
  .photo-entry__studio--left{left:-13vw}.photo-entry__studio--right{right:-13vw}
  .photo-entry__softbox{display:none}
  .photo-entry__camera{width:min(104vw,660px);bottom:7vh}
  .photo-entry__shutter{width:clamp(92px,27vw,132px)}
  .photo-entry__result{bottom:15px;font-size:.64rem}
  .photo-camera-board{min-height:480px}
  .photo-camera-board__svg{width:110%;top:52%}
  .photo-camera-board__meters{left:4%;right:4%;bottom:74px}
  .photo-camera-board__meters span:nth-child(3){display:none}
  .photo-portfolio-camera{min-height:430px;border-radius:26px}
  .photo-portfolio-camera__stage{inset:7% -15% 10%}
  .photo-portfolio-camera__status{left:18px;top:18px;font-size:.55rem}
  .photo-portfolio-camera__cta{bottom:15px;max-width:calc(100% - 30px);font-size:.68rem;white-space:normal;text-align:center}
  .photo-monitor-sequence__door{width:82vw}
  .photo-monitor-sequence__hinge,.photo-monitor-sequence__power{display:none}
  .photo-viewfinder{padding:66px 16px 34px}
  .photo-viewfinder__hud{left:16px;right:64px;top:23px}
  .photo-viewfinder__hud span:nth-child(2){display:none}
  .photo-viewfinder__grid{gap:10px}
  .photo-viewfinder__piece{min-height:190px}
  .photo-viewfinder__focus-frame{display:none}
  .photo-portfolio-dialog .world-portfolio-v47__close{right:18px;top:18px}
}
@media (max-width:480px){
  .photo-entry__studio{display:none}
  .photo-entry__camera{width:116vw;bottom:11vh}
  .photo-entry__copy{top:5vh}
  .photo-entry__title{font-size:clamp(2.2rem,12.5vw,3.55rem)}
  .photo-camera-board{min-height:420px}
  .photo-camera-board__svg{width:126%}
  .photo-portfolio-camera{min-height:365px}
  .photo-portfolio-camera__stage{inset:10% -31% 13%}
  .photo-viewfinder__grid{grid-template-columns:1fr}
  .photo-viewfinder__piece{min-height:260px}
}
@media (max-height:680px) and (min-width:761px){
  .photo-entry__copy{top:18px}
  .photo-entry__title{font-size:clamp(2.55rem,4.25vw,4.55rem)}
  .photo-entry__copy>p:last-child{margin-top:.35rem}
  .photo-entry__camera{width:min(59vw,730px);bottom:-9%}
  .photo-entry__studio{height:55vh;width:19vw}
  .photo-entry__result{bottom:10px}
}

/* Reduced motion: preserve functionality, remove travel and kinetic effects. */
@media (prefers-reduced-motion:reduce){
  .photo-entry *, .photo-atmosphere *, .world-background-v47--photo *, .photo-portfolio-camera *, .photo-portfolio-dialog *{animation:none!important;scroll-behavior:auto!important}
  .photo-entry,.photo-entry__flash,.photo-portfolio-camera__door,.photo-monitor-sequence__door,.photo-viewfinder{transition-duration:.01ms!important}
}
html.reduce-motion .photo-entry *,
html.reduce-motion .photo-atmosphere *,
html.reduce-motion .world-background-v47--photo *,
html.reduce-motion .photo-portfolio-camera *,
html.reduce-motion .photo-portfolio-dialog *{animation:none!important}
html.reduce-motion .photo-entry,
html.reduce-motion .photo-entry__flash,
html.reduce-motion .photo-portfolio-camera__door,
html.reduce-motion .photo-monitor-sequence__door,
html.reduce-motion .photo-viewfinder{transition-duration:.01ms!important}

/* Keyframes */
@keyframes photo-focus-drift{50%{transform:translate3d(18px,-14px,0) rotate(3deg)}}
@keyframes photo-bokeh{50%{transform:translate3d(15px,-24px,0) scale(1.08);opacity:.68}}
@keyframes photo-warp-fly{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.04) rotate(0);filter:blur(5px) drop-shadow(0 0 20px currentColor)}
  18%{opacity:1}
  78%{opacity:.95;transform:translate(calc(-50% + var(--x)*.76),calc(-50% + var(--y)*.76)) scale(1.35) rotate(calc(var(--r)*.7));filter:blur(0) drop-shadow(0 0 20px currentColor)}
  100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(3.1) rotate(var(--r));filter:blur(2px) drop-shadow(0 0 30px currentColor)}
}
@keyframes photo-entry-ring{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes photo-data-float{50%{translate:0 -12px}}
@keyframes photo-lens-spin{to{transform:rotate(360deg)}}
@keyframes photo-shutter-flash{0%,100%{opacity:0}8%{opacity:1}18%{opacity:.18}26%{opacity:.88}45%{opacity:.06}}
@keyframes photo-camera-kick{35%{transform:translateX(-50%) scale(.985)}70%{transform:translateX(-50%) scale(1.006)}}
@keyframes photo-board-sheen{0%,65%{transform:translateX(-125%)}82%,100%{transform:translateX(125%)}}
@keyframes photo-focus-breathe{50%{opacity:.48;transform:scale(.97);transform-origin:center}}
@keyframes photo-led{0%,47%{opacity:1}48%,100%{opacity:.18}}
