/* WASSIMVISUALS V3.3 — Greyscale Glass Appearance
   Isolated to the public site. Light appearance inherits the approved V3.2.2 design.
   Explicitly dark brand storytelling (Philosophy/Contact) remains intentionally dark. */
:root{color-scheme:light;--wv-theme-control-bg:rgba(255,255,255,.62);--wv-theme-control-line:rgba(27,30,28,.16);--wv-theme-control-ink:#202321}
:root[data-wv-theme="dark"]{color-scheme:dark;--wv3-bg:#141615;--wv3-ink:#f0f1ee;--wv3-muted:#b3b7b2;--wv3-line:rgba(236,240,235,.18);--wv3-soft:#1d201e;--wv-theme-control-bg:rgba(245,247,242,.09);--wv-theme-control-line:rgba(244,246,242,.25);--wv-theme-control-ink:#f1f2ef}
/* Discreet sun/moon control in the shared header and project pages. */
.wv-theme-toggle{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;height:40px;padding:0;border:1px solid var(--wv-theme-control-line);border-radius:50%;background:var(--wv-theme-control-bg);color:var(--wv-theme-control-ink);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 12px rgba(0,0,0,.04);cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.wv-theme-toggle:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--wv-theme-control-bg),var(--wv-theme-control-ink) 9%)}
.wv-theme-toggle:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.wv-theme-toggle .wv-theme-icon{display:inline-flex;align-items:center;justify-content:center}
.wv-theme-toggle svg{display:block;width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.75}
.wv-theme-icon--sun{display:none!important}
:root[data-wv-theme="dark"] .wv-theme-icon--moon{display:none!important}
:root[data-wv-theme="dark"] .wv-theme-icon--sun{display:inline-flex!important}
@media(max-width:700px){.wv-theme-toggle{width:34px;height:34px}.wv-theme-toggle svg{width:16px;height:16px}}
@media(prefers-reduced-motion:reduce){.wv-theme-toggle{transition:none}.wv-theme-toggle:hover{transform:none}}
/* On project case studies the control is within the existing, branded sticky bar. */
.wv-case-actions{display:flex;align-items:center;justify-content:flex-end;gap:clamp(8px,1.5vw,18px);min-width:0}
.wv3-case-sticky .wv-theme-toggle{color:inherit;background:rgba(80,80,80,.17);border-color:currentColor}
.wv3-case-sticky .wv-case-actions .case-back{max-width:none;min-width:0}
@media(max-width:700px){.wv3-case-sticky .wv-case-actions{gap:8px}.wv3-case-sticky .wv-case-actions .case-back{font-size:10px}}

/* Dark mode tokens and all light-page surfaces. Photos, logos and portfolio artwork are never filtered. */
:root[data-wv-theme="dark"] body.wv3{background:var(--wv3-bg);color:var(--wv3-ink)}
:root[data-wv-theme="dark"] body.wv3 :is(a,button,input,textarea,select):focus-visible{outline-color:#fafafa}
:root[data-wv-theme="dark"] body.wv3 .wv3-site-sticky{background:rgba(20,22,21,.96);border-bottom-color:rgba(242,245,241,.1)}
@supports(backdrop-filter:blur(8px)){:root[data-wv-theme="dark"] body.wv3 .wv3-site-sticky{background:rgba(20,22,21,.88)}}
:root[data-wv-theme="dark"] body.wv3 .wv3-header-frame .wv-lang-switch{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15)}
:root[data-wv-theme="dark"] body.wv3 .wv3-header-frame .wv-lang-current{color:#f3f4f1}
:root[data-wv-theme="dark"] body.wv3 .wv3-header-frame .wv-lang-options{background:#242725;border-color:#505450;box-shadow:0 18px 50px #0008}
:root[data-wv-theme="dark"] body.wv3 .wv3-header-frame .wv-lang-options>a{color:#e6e8e4}
:root[data-wv-theme="dark"] body.wv3 .wv3-header-frame .wv-lang-options>a:is(:hover,.is-current){background:#3d423f;color:white}
:root[data-wv-theme="dark"] body.wv3 .wv3-header-frame .wv-lang-code{color:#babfba}
:root[data-wv-theme="dark"] body.wv3 .wv3-menu-toggle{background:#292d2a;border-color:#454945;color:#f1f2ee}
:root[data-wv-theme="dark"] body.wv3 .wv3-mobile-nav{background:#232624;color:#f4f5f2;box-shadow:0 30px 75px #000b}
:root[data-wv-theme="dark"] body.wv3 .wv3-mobile-nav a{border-bottom-color:#444945}
:root[data-wv-theme="dark"] body.wv3 .wv3-hero-top{color:#afb4ae}
:root[data-wv-theme="dark"] body.wv3 .wv3-kicker{color:#aeb3ae}
:root[data-wv-theme="dark"] body.wv3 .wv3-rule{background:#aeb3ae}
:root[data-wv-theme="dark"] body.wv3 .wv3-hero-desc{color:#b4b8b2}
:root[data-wv-theme="dark"] body.wv3 .wv3-pill.primary{background:#edeFEB;color:#171a18}
:root[data-wv-theme="dark"] body.wv3 .wv3-pill.primary:hover{background:#fff}
:root[data-wv-theme="dark"] body.wv3 .wv3-text-link:not(.light-link){color:#edeFEB}
:root[data-wv-theme="dark"] body.wv3 .wv3-led{background:#c8cbc6;box-shadow:0 0 0 5px #fff2}
:root[data-wv-theme="dark"] body.wv3 .wv3-section-heading p{color:#bbc0ba}
:root[data-wv-theme="dark"] body.wv3 .wv3-work-note{color:#aeb4ae}
:root[data-wv-theme="dark"] body.wv3 .wv3-outline-link:hover{background:#f1f2ef;color:#181a19}
:root[data-wv-theme="dark"] body.wv3 #project-grid>.wv3-project{color:var(--wv3-ink)!important}
:root[data-wv-theme="dark"] body.wv3 .wv3-project-overline,
:root[data-wv-theme="dark"] body.wv3 #project-grid .wv3-project-year,
:root[data-wv-theme="dark"] body.wv3 .wv3-empty{color:#b1b7b0}
:root[data-wv-theme="dark"] body.wv3 .wv3-project-media-label{background:#191c1bdf!important;color:#f1f2ef!important;border-color:#5a615c!important}
/* The all-dark editorial Philosophy and Contact sections intentionally keep their character. */
:root[data-wv-theme="dark"] body.wv3 .wv3-philosophy{background:#202322}
:root[data-wv-theme="dark"] body.wv3 .wv3-services{border-top-color:#555b55}
:root[data-wv-theme="dark"] body.wv3 .wv3-service{border-bottom-color:#555b55}
:root[data-wv-theme="dark"] body.wv3 .wv3-service:hover{background:#292d2a}
:root[data-wv-theme="dark"] body.wv3 .wv3-service-icon{border-color:#777e77}
:root[data-wv-theme="dark"] body.wv3 .wv3-service-index,
:root[data-wv-theme="dark"] body.wv3 .wv3-service p{color:#b3b8b2}
:root[data-wv-theme="dark"] body.wv3 .wv3-process{background:#1b1e1c}
:root[data-wv-theme="dark"] body.wv3 .wv3-process-card{background:rgba(244,246,242,.065);border-color:rgba(245,248,243,.16);box-shadow:inset 0 1px 0 #fff1,0 12px 40px #0003}
:root[data-wv-theme="dark"] body.wv3 .wv3-process-card:hover{background:rgba(244,246,242,.11)}
:root[data-wv-theme="dark"] body.wv3 .wv3-process-glyph,
:root[data-wv-theme="dark"] body.wv3 .wv3-process-card p{color:#b6bab5}
:root[data-wv-theme="dark"] body.wv3 .wv3-portfolio-intro{background:radial-gradient(circle at 85% 15%,#454945,#272b29 55%,#161918)}
:root[data-wv-theme="dark"] body.wv3 .wv3-portfolio-intro::before{border-color:#ffffff30;background:#ffffff09;box-shadow:inset 18px 25px 55px #fff1,inset -18px -18px 45px #0005}
:root[data-wv-theme="dark"] body.wv3 .wv3-portfolio-intro-grid p{color:#c4c8c2}
:root[data-wv-theme="dark"] body.wv3 .wv3-portfolio-intro-footer{border-color:#ffffff40}
/* Floating glass section and the scroll-driven story remain original, now in muted graphite. */
:root[data-wv-theme="dark"] body.wv3 .wv3-glass-interlude{background:radial-gradient(ellipse at 70% 35%,#565b56,#303431 49%,#191d1b 100%)}
:root[data-wv-theme="dark"] body.wv3 .wv3-glass-story{color:#f1f2ef;text-shadow:0 1px 30px #0004}
:root[data-wv-theme="dark"] body.wv3 .wv3-glass-story p{color:#d2d6d0}
:root[data-wv-theme="dark"] body.wv3 .wv3-glass-plate{color:#f0f1ec;background:#ffffff18;border-color:#ffffff40}
:root[data-wv-theme="dark"] body.wv3 .wv3-glass-plate b{color:#f0f1ec}
:root[data-wv-theme="dark"] body.wv3 .wv3-glass-atmosphere .orb{border-color:#ffffff32;background:linear-gradient(160deg,#ffffff23,#ffffff05);box-shadow:inset -18px -16px 45px #0005,inset 15px 12px 40px #ffffff2a,0 20px 100px #0004}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-reel{background:#373b39}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-stage{background:radial-gradient(ellipse at 70% 15%,#4b504d 0%,#3e4340 42%,#343835 100%);color:#f2f3f0}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-topline span:last-child,
:root[data-wv-theme="dark"] body.wv3 .wv-vision-scroll-note,
:root[data-wv-theme="dark"] body.wv3 .wv-vision-small-number,
:root[data-wv-theme="dark"] body.wv3 .wv-vision-photo-caption{color:#c8ccc7}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-underline{background:#ffffff49}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-underline span{background:#f0f0ed}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-step{background:#ffffff55}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-step.is-active{background:#f4f5f1}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-photo-mat{background:#323633;border-color:#ffffff40}
/* Ecosystem: white collaborator logo tiles remain light so original dark brandmarks stay visible. */
:root[data-wv-theme="dark"] body.wv3 .wv-collab-section{--wv-collab-bg:#1c1f1d;color:#eeefeb}
:root[data-wv-theme="dark"] body.wv3 .wv-collab-section::before{background:radial-gradient(ellipse at 50% 48%,#fff2,transparent 67%)}
:root[data-wv-theme="dark"] body.wv3 .wv-collab-heading p,
:root[data-wv-theme="dark"] body.wv3 .wv-collab-footnote{color:#b5b9b4}
:root[data-wv-theme="dark"] body.wv3 .wv-collab-card{background:#f1f2ef;color:#171917;border-color:#dddeda}
:root[data-wv-theme="dark"] body.wv3 .wv-collab-center-inner{border-color:#646a64}
/* Contact stays black; modal responds to selected appearance. */
:root[data-wv-theme="dark"] body.wv3 .wv3-contact{background:#111312}
:root[data-wv-theme="dark"] body.wv3 .booking-dialog{background:#222623;color:#f3f4f1;border:1px solid #454945}
:root[data-wv-theme="dark"] body.wv3 .booking-dialog .close-booking{background:#343935;color:#f1f2ef;border-color:#525852}
:root[data-wv-theme="dark"] body.wv3 .booking-choice{background:#292d2a;color:#e4e8e2;border-color:#525852}
:root[data-wv-theme="dark"] body.wv3 .booking-choice.active{background:#f0f1ee;color:#171918;border-color:#f0f1ee}
:root[data-wv-theme="dark"] body.wv3 .booking-dialog :is(input,textarea){background:#151917;color:#f0f1ee;border-color:#555d56}
:root[data-wv-theme="dark"] body.wv3 .booking-dialog :is(input,textarea)::placeholder{color:#aeb4ad}
:root[data-wv-theme="dark"] body.wv3 .booking-note{color:#b6bcb5}
/* Public quick-view modal (opened from Home & Portfolio). */
:root[data-wv-theme="dark"] body.wv3 .project-modal{background:#222623!important;color:#f3f4f0!important}
:root[data-wv-theme="dark"] body.wv3 .project-modal :is(.project-modal-info p,.project-modal-eyebrow){color:#b9beb8}
:root[data-wv-theme="dark"] body.wv3 .project-modal-close{background:#363b37;color:white;border-color:#5a625c}

/* Creative Journal: listing, card variants, article and editor-rendered rich text. */
:root[data-wv-theme="dark"] body.wv3 .wj{--wj-bg:#141615;--wj-ink:#f0f1ee;--wj-muted:#b6bcb5;--wj-line:#424843;color:var(--wj-ink)}
:root[data-wv-theme="dark"] body.wv3 .wj-lead,
:root[data-wv-theme="dark"] body.wv3 .wj-card-meta,
:root[data-wv-theme="dark"] body.wv3 .wj-card p,
:root[data-wv-theme="dark"] body.wv3 .wj-card .wj-card-excerpt,
:root[data-wv-theme="dark"] body.wv3 .wj-article-sub,
:root[data-wv-theme="dark"] body.wv3 .wj-article-body figcaption,
:root[data-wv-theme="dark"] body.wv3 .wj-empty{color:#b9bfb8}
:root[data-wv-theme="dark"] body.wv3 .wj .wj-grid>.wj-card{background:rgba(245,248,243,.065);border-color:rgba(245,248,243,.16)}
:root[data-wv-theme="dark"] body.wv3 .wj .wj-card:hover{background:rgba(245,248,243,.10);border-color:rgba(245,248,243,.25)}
:root[data-wv-theme="dark"] body.wv3 .wj .wj-grid--editorial>.wj-card{background:#232725;border-color:#424842}
:root[data-wv-theme="dark"] body.wv3 .wj .wj-grid--minimal>.wj-card{background:transparent;border-color:transparent}
:root[data-wv-theme="dark"] body.wv3 .wj .wj-readmore{color:#f0f1ed}
:root[data-wv-theme="dark"] body.wv3 .wj-chip{color:#e6eae5;border-color:#626962}
:root[data-wv-theme="dark"] body.wv3 .wj-chip:is(:hover,.is-active){background:#f1f3ee;color:#171917;border-color:#f1f3ee}
:root[data-wv-theme="dark"] body.wv3 .wj-cta{background:#f1f2ef;color:#161918}
:root[data-wv-theme="dark"] body.wv3 .wj-translations a{border-color:#636a63}
:root[data-wv-theme="dark"] body.wv3 .wj-translations a[aria-current]{background:#f3f4f1;color:#141615}
:root[data-wv-theme="dark"] body.wv3 .wj-article-body .wj-richtext pre{background:#242825;color:#e7eae6}
:root[data-wv-theme="dark"] body.wv3 .wj-article-body .wj-richtext blockquote{border-inline-start-color:#848c83}
/* Project story pages preserve each case study's brand hero and media. Narrative surfaces shift to graphite. */
:root[data-wv-theme="dark"] body.creative-case{background:#141615!important;color:#f1f2ee!important}
:root[data-wv-theme="dark"] body.creative-case .case-block{background:#171a18;color:#edeeeb}
:root[data-wv-theme="dark"] body.creative-case .case-block-outcome{background:#272e29}
:root[data-wv-theme="dark"] body.creative-case .case-full-image figcaption{background:#171a18;color:#eceee9}
:root[data-wv-theme="dark"] body.creative-case .case-social-links{background:#171a18;color:#eceedf}
:root[data-wv-theme="dark"] body.creative-case .case-progress{background:#f0f2ed}
/* Small thank-you page inline muted copy retains legibility without changing content. */
:root[data-wv-theme="dark"] body.wv3 main>p[style*="color:#777"]{color:#b9bdb7!important}
/* Theme-aware treatment for monochrome logo uploads in the public header only. */
:root[data-wv-theme="dark"] body.wv3 .wv3-header-frame .wv3-logo-img{filter:grayscale(1) brightness(0) invert(1)!important}
/* Never invert portfolio artwork, project photography or collaborator logos. */

/* V3.3.1 — THE CREATIVE PERSPECTIVE: understated black fluid ripples on graphite.
   The overlay remains behind copy and artwork; it is active in DARK MODE only. */
:root[data-wv-theme="dark"] body.wv3 .wv-vision-halo{
  background:radial-gradient(circle,rgba(255,255,255,.085),transparent 70%);
}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-grid{opacity:.12}
body.wv3 .wv-vision-ink{display:none;position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;contain:layout paint}
:root[data-wv-theme="dark"] body.wv3 .wv-vision-ink{display:block}
.wv-vision-ink-aura{
  position:absolute;top:0;left:0;width:560px;height:560px;opacity:0;
  border-radius:50%;will-change:transform;transform:translate3d(-900px,-900px,0);
  background:radial-gradient(circle,rgba(0,0,0,.78) 0%,rgba(0,0,0,.62) 19%,rgba(0,0,0,.37) 43%,rgba(0,0,0,.15) 58%,transparent 73%);
  transition:opacity .32s ease;
}
.wv-vision-ink.is-ink-active .wv-vision-ink-aura{opacity:1}
.wv-vision-ink-wave{
  position:absolute;top:0;left:0;width:265px;height:265px;pointer-events:none;
  border-radius:50%;opacity:0;transform:translate3d(-50%,-50%,0) scale(.2);
  background:radial-gradient(circle,rgba(0,0,0,.16) 0 17%,transparent 19% 29%,rgba(0,0,0,.47) 30% 33%,transparent 36% 46%,rgba(0,0,0,.28) 48% 51%,transparent 53% 63%,rgba(0,0,0,.13) 65% 67%,transparent 69%);
  filter:blur(7px);
  animation:wv-vision-ink-wave 1.28s cubic-bezier(.12,.55,.24,1) both;
}
@keyframes wv-vision-ink-wave{
  0%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.2)}
  15%{opacity:.66}
  70%{opacity:.38}
  100%{opacity:0;transform:translate3d(-50%,-50%,0) scale(2.05)}
}
@media(hover:none),(pointer:coarse),(max-width:850px){
  body.wv3 .wv-vision-ink{display:none!important}
}
@media(prefers-reduced-motion:reduce){
  body.wv3 .wv-vision-ink{display:none!important}
}
