/* VIEWRINGER V3 — Phase 1 presentation shell. Locked portfolio media is never filtered or cropped. */
:root{
  --v3-cobalt:#2547d0;
  --v3-ink:#10121b;
  --v3-chalk:#e9eef2;
  --v3-sand:#f2e9da;
  --v3-silver:#cfd7df;
  --v3-blue-light:#e7edff;
  --v3-line-dark:rgba(233,238,242,.24);
  --v3-line-ink:rgba(16,18,27,.24);
  --v3-pad:clamp(22px,4.1vw,64px);
}
html{background:var(--v3-chalk)}
body{background:var(--v3-chalk);color:var(--v3-ink)}
.signal,.prq,.studio-services{display:none!important}
.masthead{background:rgba(233,238,242,.92);border-bottom:1px solid rgba(16,18,27,.14);backdrop-filter:blur(14px)}
.masthead-in{max-width:none;padding-inline:var(--v3-pad)}
.studio-wordmark{color:var(--v3-ink);letter-spacing:-1.5px}
.masthead-nav a{color:var(--v3-ink)}
.masthead-nav a .n{color:#667080}
.masthead-cta{background:var(--v3-ink);color:var(--v3-chalk);border-color:var(--v3-ink);border-radius:0}
.masthead-cta:hover{background:var(--v3-cobalt);border-color:var(--v3-cobalt)}

.v3-overline{font:500 11px/1.4 var(--mono,monospace);letter-spacing:.12em;text-transform:uppercase}
.v3-action{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:52px;padding:14px 17px;border:1px solid currentColor;font-size:14px;font-weight:650;letter-spacing:-.02em;transition:background .25s,color .25s}
.v3-action span{font-size:19px;line-height:1}
.v3-action--primary{background:var(--v3-chalk);color:var(--v3-ink);border-color:var(--v3-chalk)}
.v3-action--primary:hover{background:var(--v3-ink);color:var(--v3-chalk);border-color:var(--v3-ink)}
.v3-action--text{padding-inline:0;border-width:0 0 1px;color:var(--v3-blue-light)}
.v3-action--light{color:var(--v3-chalk)}
.v3-action--light:hover{background:var(--v3-chalk);color:var(--v3-ink)}
.v3-action--ink{color:var(--v3-ink)}
.v3-action--ink:hover{background:var(--v3-ink);color:var(--v3-sand)}

/* Scene 1 */
.v3-hero{position:relative;min-height:calc(100svh - var(--header-h,82px));overflow:hidden;background:var(--v3-cobalt);color:var(--v3-blue-light);isolation:isolate}
.v3-hero-stage{position:relative;min-height:calc(100svh - var(--header-h,82px));padding:clamp(26px,4vh,54px) var(--v3-pad) 30px;display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:auto 1fr auto;align-items:start}
.v3-hero-display{position:absolute;margin:0;color:var(--v3-blue-light);font-family:Arial Black,Arial,sans-serif;font-size:clamp(112px,14.6vw,224px);font-weight:900;line-height:.78;letter-spacing:-.095em;white-space:nowrap;pointer-events:none;user-select:none}
.v3-hero-display--back{left:-.035em;top:27%;z-index:0;color:rgba(231,237,255,.68)}
.v3-hero-display--front{right:-.025em;bottom:8%;z-index:3;display:flex;flex-direction:column;align-items:flex-end;font-size:clamp(76px,10.2vw,156px);color:rgba(231,237,255,.76)}
.v3-hero-display--front span:first-child{font-size:.3em;line-height:1.1;letter-spacing:.04em;margin-right:.1em}
.v3-ringer{position:absolute;inset:-3% -4% -5%;z-index:2;pointer-events:none}
.v3-ringer canvas,.v3-ringer-fallback{position:absolute;inset:0;width:100%;height:100%;display:block}
.v3-ringer canvas{opacity:0;transition:opacity .7s ease}
.v3-ringer.is-live canvas{opacity:1}
.v3-ringer.is-live .v3-ringer-fallback{opacity:0}
.v3-ringer-fallback{transition:opacity .6s ease}
.v3-ringer-fallback svg{width:100%;height:100%;display:block}
.v3-hero-brand{position:relative;z-index:4;grid-column:1/3;display:grid;grid-template-columns:1fr auto;align-items:start;gap:20px}
.v3-brand{grid-column:1;font-family:Arial Black,Arial,sans-serif;font-size:clamp(30px,3vw,46px);font-weight:900;letter-spacing:-.07em;margin-top:8px}
.v3-services{grid-column:2;grid-row:1/3;align-self:center;font-size:18px;font-weight:720;letter-spacing:-.025em;padding:15px 0;border-block:1px solid rgba(231,237,255,.68)}
.v3-hero-copy{position:relative;z-index:5;grid-column:1;grid-row:3;align-self:end;max-width:620px;padding-top:140px}
.v3-hero-copy h1{font-size:clamp(38px,4.15vw,64px);font-weight:620;line-height:1.13;letter-spacing:-.062em;text-wrap:balance}
.v3-hero-copy>p{max-width:470px;margin-top:22px;font-size:17px;line-height:1.75;color:rgba(231,237,255,.88)}
.v3-hero-actions{display:flex;align-items:center;gap:24px;margin-top:29px}
.v3-hero-status{position:absolute;right:var(--v3-pad);top:50%;z-index:5;display:flex;writing-mode:vertical-rl;gap:18px;font:500 10px/1 var(--mono,monospace);letter-spacing:.1em;color:rgba(231,237,255,.7)}

/* Shared scene language */
.v3-scene{position:relative;padding:clamp(92px,10vw,150px) var(--v3-pad);overflow:hidden}
.v3-scene-head{display:grid;grid-template-columns:90px minmax(180px,.7fr) minmax(440px,1.7fr);grid-template-rows:auto auto;gap:24px 32px;align-items:start;margin-bottom:clamp(50px,7vw,105px)}
.v3-scene-no{grid-row:1/3;font-family:Arial,sans-serif;font-size:64px;font-weight:300;line-height:.8;letter-spacing:-.06em}
.v3-scene-head h2{grid-column:3;grid-row:1/3;font-size:clamp(48px,6.3vw,96px);font-weight:560;line-height:.98;letter-spacing:-.068em}
.v3-scene-intro{grid-column:2;align-self:end;max-width:260px;font-size:15px;line-height:1.7}
.v3-scene-cta{display:flex;justify-content:flex-end;margin-top:58px}

/* Scene 2 */
#video.v3-cinema{background:var(--v3-ink);color:var(--v3-chalk);padding-top:clamp(105px,12vw,180px)}
.v3-cinema:before{content:"";position:absolute;left:0;right:0;top:0;height:18px;background:var(--v3-cobalt)}
.v3-cinema .v3-scene-head{border-top:1px solid var(--v3-line-dark);padding-top:22px}
.v3-cinema .v3-overline,.v3-cinema .v3-scene-intro{color:#aeb7c3}
.v3-cinema-layout{max-width:1360px;margin-inline:auto}
.v3-film-gallery{display:grid;grid-template-columns:minmax(72px,11vw) minmax(0,1fr) minmax(72px,11vw);gap:clamp(10px,1.5vw,22px);align-items:center;overflow:hidden}
.v3-film-peek{position:relative;display:block;width:100%;height:min(48svh,470px);padding:0;overflow:hidden;border:1px solid rgba(233,238,242,.18);background:#07080d;color:var(--v3-chalk);cursor:pointer;opacity:.58;transition:opacity .25s ease,transform .35s ease,border-color .25s ease}
.v3-film-peek--prev{transform:translateX(-18%)}.v3-film-peek--next{transform:translateX(18%)}
.v3-film-peek img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.78) brightness(.68);transition:filter .25s ease,transform .45s ease}
.v3-film-peek span{position:absolute;inset:auto 0 0;display:grid;gap:5px;padding:14px 11px;background:linear-gradient(0deg,rgba(7,8,13,.92),rgba(7,8,13,0));text-align:left}
.v3-film-peek b{font:500 10px/1 var(--mono,monospace);letter-spacing:.08em}.v3-film-peek em{font:500 11px/1.3 var(--font,sans-serif);font-style:normal;white-space:nowrap}
.v3-film-peek:hover,.v3-film-peek:focus-visible{opacity:.92;transform:translateX(0);border-color:rgba(233,238,242,.55)}
.v3-film-peek:hover img,.v3-film-peek:focus-visible img{filter:saturate(1) brightness(.82);transform:scale(1.025)}
.v3-film-stage{height:min(69svh,700px);min-height:470px;display:flex;justify-content:center;align-items:center;background:#07080d;border:1px solid rgba(233,238,242,.18);padding:16px;transition:height .45s ease}
.v3-film-stage video{display:block;width:100%;height:100%;object-fit:contain;background:#07080d;filter:none!important;mix-blend-mode:normal!important;opacity:1!important}
.v3-film-stage.is-portrait{height:min(75svh,760px)}
.v3-film-stage.is-portrait video{width:auto;max-width:100%;aspect-ratio:9/16}
.v3-film-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;padding:25px 0 22px;border-bottom:1px solid var(--v3-line-dark)}
.v3-film-meta h3{max-width:720px;margin-top:10px;font-size:clamp(24px,2.6vw,40px);font-weight:520;line-height:1.25;letter-spacing:-.045em}
.v3-film-counter{display:flex;align-items:baseline;gap:8px;font:400 14px/1 var(--mono,monospace)}
.v3-film-counter b{font:300 52px/1 Arial,sans-serif}
.v3-film-controls{display:flex;justify-content:flex-end;border-bottom:1px solid var(--v3-line-dark)}
.v3-film-controls button,.v3-film-index button{appearance:none;background:none;color:inherit;border:0;font:500 12px/1.2 var(--mono,monospace);cursor:pointer}
.v3-film-controls button{min-height:52px;padding:13px 20px;border-left:1px solid var(--v3-line-dark)}
.v3-film-controls button:disabled{color:#657080;cursor:default}
.v3-film-controls button:hover:not(:disabled),.v3-film-controls button:focus-visible{background:var(--v3-chalk);color:var(--v3-ink)}
.v3-film-index{margin-top:84px;border-top:1px solid var(--v3-line-dark);counter-reset:work}
.v3-film-index button{counter-increment:work;position:relative;width:100%;display:grid;grid-template-columns:78px minmax(0,1fr) 210px 42px;align-items:center;gap:22px;text-align:left;padding:22px 6px;border:0;border-bottom:1px solid var(--v3-line-dark);color:#8993a1;min-height:78px;transition:color .2s,padding .2s,background .2s}
.v3-film-index button:before{content:"0" counter(work);font:400 12px/1 var(--mono,monospace);letter-spacing:.08em}
.v3-film-index button b{grid-column:3;grid-row:1;margin:0;color:inherit;font:500 10px/1.3 var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase}
.v3-film-index button span{grid-column:2;grid-row:1;font-family:var(--font,sans-serif);font-size:clamp(16px,1.55vw,22px);line-height:1.25;letter-spacing:-.035em}
.v3-film-index button:after{content:"↗";grid-column:4;font-size:18px;opacity:.35}
.v3-film-index button:hover,.v3-film-index button:focus-visible{color:var(--v3-chalk);padding-left:16px;background:rgba(255,255,255,.035)}
.v3-film-index button[aria-current="true"]{color:var(--v3-chalk);padding-left:16px}
.v3-film-index button[aria-current="true"]:after{opacity:1;color:#7395ee}

/* Scene 3 */
#landing.v3-web{background:var(--v3-sand);color:var(--v3-ink)}
.v3-web-head{display:grid;grid-template-columns:90px 1.2fr .8fr;gap:32px;border-top:1px solid var(--v3-line-ink);padding-top:22px;margin-bottom:70px}
.v3-web-head h2{font-size:clamp(58px,8.2vw,126px);font-weight:560;line-height:.9;letter-spacing:-.073em;margin-top:19px}
.v3-web-head>p:last-child{max-width:330px;justify-self:end;align-self:end;font-size:16px;line-height:1.75}
.v3-web-layout{display:grid;grid-template-columns:minmax(0,3.35fr) minmax(245px,1fr);gap:clamp(28px,3.4vw,54px);align-items:start}
.v3-web-gallery{display:grid;grid-template-columns:minmax(54px,7vw) minmax(0,1fr) minmax(54px,7vw);gap:clamp(8px,1vw,14px);align-items:center;min-width:0;overflow:hidden}
.v3-web-peek{position:relative;width:100%;height:min(52svh,560px);padding:0;overflow:hidden;border:1px solid var(--v3-line-ink);background:#fff;color:var(--v3-ink);cursor:pointer;opacity:.6;transition:opacity .25s ease,transform .35s ease,box-shadow .25s ease}
.v3-web-peek--prev{transform:translateX(-20%)}.v3-web-peek--next{transform:translateX(20%)}
.v3-web-peek img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center;filter:saturate(.74) contrast(.92);transition:filter .25s ease,transform .45s ease}
.v3-web-peek span{position:absolute;inset:auto 0 0;display:grid;gap:5px;padding:26px 8px 10px;background:linear-gradient(0deg,rgba(255,255,255,.96),rgba(255,255,255,0));text-align:left}
.v3-web-peek b{font:600 9px/1 var(--mono,monospace);letter-spacing:.08em}.v3-web-peek em{font:650 10px/1.25 var(--font,sans-serif);font-style:normal;white-space:nowrap}
.v3-web-peek:hover,.v3-web-peek:focus-visible{opacity:.96;transform:translateX(0);box-shadow:0 18px 42px rgba(83,65,35,.16)}
.v3-web-peek:hover img,.v3-web-peek:focus-visible img{filter:saturate(1) contrast(1);transform:scale(1.018)}
.v3-web-viewer{height:min(74svh,820px);overflow:auto;background:#fff;border:1px solid var(--v3-line-ink);box-shadow:0 30px 80px rgba(83,65,35,.15);scrollbar-width:thin;scrollbar-color:var(--v3-ink) #fff;overscroll-behavior:contain}
.v3-web-viewer:focus-visible{outline:3px solid var(--v3-cobalt);outline-offset:4px}
.v3-web-viewer img{display:block;width:100%;height:auto;filter:none!important;mix-blend-mode:normal!important;opacity:1!important}
.v3-web-info{position:sticky;top:calc(var(--header-h,82px) + 28px);padding:12px 0 0 18px;border-left:1px solid var(--v3-line-ink)}
.v3-web-info h3{font:900 clamp(38px,3.5vw,54px)/.92 Arial,sans-serif;letter-spacing:-.075em;margin:17px 0 22px;white-space:nowrap}
.v3-web-info>p:not(.v3-overline){font-size:13px;line-height:1.7;max-width:270px;color:#625e57}
.v3-view-full{width:100%;min-height:52px;margin-top:34px;border:1px solid var(--v3-ink);background:transparent;color:var(--v3-ink);text-align:left;padding:14px 16px;font-weight:650;cursor:pointer}
.v3-view-full:hover,.v3-view-full:focus-visible{background:var(--v3-ink);color:var(--v3-sand)}
.v3-web-index{margin-top:56px;border-top:1px solid var(--v3-line-ink)}
.v3-web-index button{appearance:none;width:100%;display:grid;grid-template-columns:38px 1fr;gap:12px;text-align:left;background:none;color:#777064;border:0;border-bottom:1px solid var(--v3-line-ink);padding:16px 0;cursor:pointer;font-size:13px}
.v3-web-index button b{font:500 11px/1.3 var(--mono,monospace)}
.v3-web-index button span{font-weight:600}
.v3-web-index button[aria-current="true"]{color:var(--v3-ink);padding-left:11px}
.v3-web-index button[aria-current="true"] span:after{content:" VIEWING";display:block;font:500 9px/1.4 var(--mono,monospace);letter-spacing:.08em;margin-top:4px;color:var(--v3-cobalt)}
.v3-disclaimer{margin:28px 0 0;max-width:760px;font-size:12px;line-height:1.7;color:#6d665b}

/* Full-page viewer */
.v3-web-dialog{width:min(1280px,96vw);height:94svh;max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #424754;background:var(--v3-ink);color:var(--v3-chalk)}
.v3-web-dialog::backdrop{background:rgba(5,6,10,.88)}
.v3-dialog-bar{height:62px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 18px;border-bottom:1px solid var(--v3-line-dark)}
.v3-dialog-bar p{display:flex;align-items:center;gap:16px}.v3-dialog-bar p span{font:500 10px/1 var(--mono,monospace);letter-spacing:.1em;color:#9aa4b0}.v3-dialog-bar p b{font-size:15px}
.v3-dialog-bar>div{display:flex;align-items:center}.v3-dialog-bar button{min-width:46px;height:38px;border:1px solid var(--v3-line-dark);background:none;color:inherit;cursor:pointer}.v3-dialog-bar output{min-width:64px;text-align:center;font:500 11px/1 var(--mono,monospace)}.v3-dialog-bar #v3DialogClose{width:auto;padding-inline:18px;margin-left:10px}
.v3-dialog-scroll{height:calc(94svh - 62px);overflow:auto;text-align:center;background:#252a34;overscroll-behavior:contain}
.v3-dialog-scroll img{display:block;width:100%;height:auto;margin:0 auto;transform-origin:top center;filter:none!important;mix-blend-mode:normal!important;opacity:1!important}

@media(max-width:900px){
  .v3-hero-stage{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;min-height:calc(100svh - 65px)}
  .v3-hero-brand{grid-template-columns:1fr auto}.v3-services{font-size:14px}
  .v3-hero-display--back{top:26%;font-size:clamp(118px,21vw,175px)}
  .v3-hero-display--front{bottom:8%;font-size:clamp(82px,15vw,126px)}
  .v3-hero-copy{max-width:560px;padding-top:190px}
  .v3-scene-head{grid-template-columns:70px .7fr 1.4fr}.v3-scene-no{font-size:51px}
  .v3-film-index button{grid-template-columns:58px minmax(0,1fr) 150px 30px}
  .v3-web-head{grid-template-columns:70px 1fr}.v3-web-head>p:last-child{grid-column:2;justify-self:start}
  .v3-web-layout{grid-template-columns:1fr}.v3-web-info{position:static;display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.v3-web-info h3{grid-column:1}.v3-web-info>p:not(.v3-overline){grid-column:1}.v3-view-full{grid-column:1}.v3-web-index{grid-column:2;grid-row:1/6;margin-top:0}
}

@media(max-width:700px){
  :root{--v3-pad:20px}
  .masthead{background:rgba(233,238,242,.96)}.masthead-nav{background:var(--v3-chalk)}
  .v3-overline{font-size:9px}
  .v3-action{min-height:48px;font-size:13px}
  .v3-hero{min-height:779px}
  .v3-hero-stage{min-height:779px;padding-top:22px;padding-bottom:18px;display:block}
  .v3-hero-brand{display:block}.v3-brand{font-size:28px;margin-top:7px}.v3-services{display:inline-block;font-size:13px;margin-top:10px;padding:8px 0}
  .v3-ringer{inset:90px -67% 65px -71%;transform:rotate(76deg) scale(.95)}
  .v3-hero-display--back{top:31%;left:14px;font-size:clamp(65px,19vw,76px);letter-spacing:-.09em;color:rgba(231,237,255,.62)}
  .v3-hero-display--front{right:13px;bottom:31%;font-size:clamp(54px,17vw,68px);color:rgba(231,237,255,.7)}
  .v3-hero-copy{position:absolute;left:20px;right:20px;bottom:0;padding:13px 0 18px;max-width:none;background:var(--v3-cobalt)}
  .v3-hero-copy h1{font-size:clamp(30px,8.6vw,36px);line-height:1.17}
  .v3-hero-copy>p{font-size:14px;line-height:1.65;margin-top:13px}.v3-hero-copy>p br{display:none}
  .v3-hero-actions{margin-top:18px;gap:14px}.v3-action--primary{flex:1}.v3-action--text{min-width:94px;gap:12px}
  .v3-hero-status{display:none}
  .v3-scene{padding:82px 20px}
  .v3-scene-head{display:block;margin-bottom:42px}.v3-scene-no{font-size:44px;margin-bottom:34px}.v3-scene-head h2{font-size:clamp(38px,11vw,46px);line-height:1.05;margin-top:15px}.v3-scene-intro{font-size:14px;margin-top:22px}
  .v3-film-gallery{grid-template-columns:44px minmax(0,1fr) 44px;gap:6px;margin-inline:-10px}
  .v3-film-peek{height:clamp(146px,42vw,174px);opacity:.7}.v3-film-peek--prev{transform:translateX(-20%)}.v3-film-peek--next{transform:translateX(20%)}
  .v3-film-peek span{padding:8px 5px}.v3-film-peek em{display:none}.v3-film-peek b{font-size:8px}
  .v3-film-stage,.v3-film-stage.is-portrait{height:auto;min-height:0;aspect-ratio:16/9;padding:8px}.v3-film-stage.is-portrait{aspect-ratio:4/5}.v3-film-stage.is-portrait video{height:100%;width:auto;aspect-ratio:9/16}
  .v3-film-meta{gap:15px;padding:18px 0}.v3-film-meta h3{font-size:21px}.v3-film-counter b{font-size:36px}.v3-film-counter span{font-size:11px}
  .v3-film-controls{justify-content:stretch}.v3-film-controls button{flex:1;padding-inline:8px;min-height:48px;font-size:10px}.v3-film-controls button:first-child{border-left:0}
  .v3-film-index{margin-top:49px}.v3-film-index button{grid-template-columns:34px minmax(0,1fr) 24px;gap:11px;min-height:72px;padding:14px 4px}.v3-film-index button b{grid-column:2;grid-row:2;font-size:8px}.v3-film-index button span{font-size:14px}.v3-film-index button:after{grid-column:3;grid-row:1/3}.v3-film-index button:hover,.v3-film-index button:focus-visible,.v3-film-index button[aria-current="true"]{padding-left:9px}
  .v3-scene-cta{justify-content:stretch;margin-top:42px}.v3-scene-cta .v3-action{width:100%}
  .v3-web-head{display:block;margin-bottom:43px}.v3-web-head .v3-scene-no{margin-bottom:34px}.v3-web-head h2{font-size:clamp(52px,16vw,66px);margin-top:14px}.v3-web-head>p:last-child{font-size:14px;margin-top:24px}
  .v3-web-layout{display:block}.v3-web-gallery{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px;margin-inline:-10px}.v3-web-peek{height:clamp(300px,74vw,390px);opacity:.72}.v3-web-peek--prev{transform:translateX(-22%)}.v3-web-peek--next{transform:translateX(22%)}.v3-web-peek span{padding:18px 4px 7px}.v3-web-peek em{display:none}.v3-web-peek b{font-size:8px}.v3-web-viewer{height:62svh;min-height:460px;box-shadow:0 18px 42px rgba(83,65,35,.15)}
  .v3-web-info{display:block;padding:29px 0 0;border-left:0;border-top:1px solid var(--v3-line-ink)}.v3-web-info h3{font-size:52px;margin:15px 0 19px}.v3-web-info>p:not(.v3-overline){font-size:14px}.v3-view-full{margin-top:24px}.v3-web-index{margin-top:38px}
  .v3-disclaimer{font-size:11px;margin-top:22px}
  .v3-web-dialog{width:100vw;height:100svh;border:0}.v3-dialog-bar{height:auto;min-height:64px;padding:10px 12px}.v3-dialog-bar p span{display:none}.v3-dialog-bar>div button{min-width:40px}.v3-dialog-bar output{min-width:50px}.v3-dialog-bar #v3DialogClose{padding-inline:12px;margin-left:5px}.v3-dialog-scroll{height:calc(100svh - 64px)}
}

@media(prefers-reduced-motion:reduce){
  .v3-ringer canvas{display:none!important}.v3-ringer-fallback{opacity:1!important}.v3-action,.v3-film-stage{transition:none}
}

@media(forced-colors:active){.v3-ringer{display:none}.v3-hero-display{opacity:.35}.v3-action,.v3-view-full,.v3-film-index button{border:1px solid CanvasText}}
