:root{--bg:#f5f4ef;--ink:#111;--line:#d6d5d0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.switch{position:sticky;top:0;z-index:10;background:#111;padding:10px;display:flex;justify-content:center;gap:8px}.switch button{border:1px solid #777;color:#eee;background:none;border-radius:30px;padding:10px 16px;font-size:11px;letter-spacing:.08em}.switch button.on{background:#fff;color:#111}.wrap{padding:0 clamp(20px,5vw,80px);max-width:1700px;margin:auto}.micro{font-size:11px;letter-spacing:.15em;font-weight:700;text-transform:uppercase}.muted{color:#777}nav{height:86px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font-family:Manrope;font-weight:800;font-size:21px;letter-spacing:-.09em}nav a{color:inherit;text-decoration:none;margin-left:25px;font-size:12px;font-weight:700}h1,h2,h3{font-family:Manrope;letter-spacing:-.085em}h1{font-size:clamp(58px,11vw,175px);line-height:.82;margin:65px 0 35px}h2{font-size:clamp(50px,8vw,120px);line-height:.95;margin:20px 0 55px}h3{font-size:24px}.hero{min-height:95vh;padding-top:35px;padding-bottom:50px}.hero-top,.hero-bottom,.section-head,.row{display:flex;justify-content:space-between;align-items:center;gap:20px}.hero-img{height:clamp(330px,44vw,650px);background:linear-gradient(90deg,#0008,transparent),url('https://images.unsplash.com/photo-1531058020387-3be344556be6?w=1600') center/cover;filter:grayscale(1)}.hero-bottom{padding-top:25px;align-items:end}.hero-bottom p{font-size:clamp(18px,2.3vw,28px);max-width:490px;margin:0}.section{padding-top:clamp(90px,11vw,170px);padding-bottom:clamp(90px,11vw,170px)}.grid{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:60px 24px}.card img{width:100%;aspect-ratio:4/4.7;object-fit:cover;transition:transform .6s}.card{overflow:hidden;cursor:pointer}.card:hover img{transform:scale(1.04)}.card h3{margin:18px 0 5px}.card p{font-size:12px;color:#777;margin:0}.dark{background:#111;color:#fff}.dark .muted{color:#aaa}.philosophy{min-height:650px}.philosophy h2{font-size:clamp(55px,8.5vw,130px)}.serif{font-family:'Instrument Serif';font-style:italic;font-weight:400}.services>div{border-top:1px solid var(--line);padding:28px 0;display:flex;align-items:center;gap:40px}.services h3{font-size:clamp(25px,3.2vw,48px);margin:0;flex:1}.services p{width:33%;font-size:13px;color:#777}.sand{background:#e8e4dc}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:90px}.steps>div{border-top:1px solid #aaa;padding-top:18px}.pill{border:1px solid white;border-radius:40px;padding:18px 26px;background:white;color:#111;font-weight:700;margin:5px}.pill.outline{background:none;color:white}.footer{border-top:1px solid #444;margin-top:100px;padding:35px 0;font-size:12px;color:#aaa}.admin{display:none;background:#f5f6f7;min-height:100vh}.admin-layout{display:grid;grid-template-columns:240px 1fr}.sidebar{background:white;border-right:1px solid #e5e5e5;min-height:100vh;padding:28px 15px}.sidebar .brand{font-size:17px;margin:0 8px 35px}.sidebar button{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:15px;font-size:13px;color:#666}.sidebar button.active{background:#111;color:#fff}.main{padding:35px clamp(20px,4vw,65px)}.main h2{font-size:48px;margin:12px 0 30px}.panels{display:grid;grid-template-columns:230px 1fr;gap:20px}.panel{background:#fff;border:1px solid #e9e9e9;border-radius:12px;padding:25px}.panel h3{font-size:18px;margin:0 0 20px;letter-spacing:-.04em}.sectionbtn{width:100%;text-align:left;padding:15px;border:0;background:white;border-radius:7px}.sectionbtn.active{background:#eee}.tabs{display:flex;gap:20px;border-bottom:1px solid #ddd;margin:22px 0}.tabs button{border:0;background:none;padding:12px 0;color:#777}.tabs button.active{color:#111;border-bottom:2px solid #111}.field{margin:17px 0}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:9px}.field input,.field textarea,.field select{width:100%;padding:13px;border:1px solid #ddd;border-radius:7px;background:#fff}.field textarea{min-height:90px}.upload{border:1px dashed #aaa;border-radius:8px;text-align:center;padding:30px;color:#888}.btn{background:#111;color:white;border:0;border-radius:7px;padding:14px 20px;font-size:12px;font-weight:700}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:18px 10px;border-bottom:1px solid #eee;font-size:13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}.stat{background:white;border:1px solid #eee;border-radius:10px;padding:25px}.stat strong{font-size:35px;display:block}.case{display:none;background:#eae4db}.casehero{min-height:80vh;background:#b8202e;color:white;padding:6vw;display:flex;flex-direction:column;justify-content:space-between}.casehero h1{font-size:clamp(75px,14vw,220px)}.casephoto{height:500px;background:url('https://images.unsplash.com/photo-1541701494587-cb58502866ab?w=1600') center/cover}.casecopy{padding:100px 6vw;font-size:clamp(28px,4vw,60px);max-width:1000px;letter-spacing:-.06em}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar div{border:1px solid #eee;padding:12px;min-height:70px;border-radius:5px;font-size:12px}.view{display:none}.view.active{display:block}.note{font-size:12px;color:#888}@media(max-width:900px){.admin-layout{grid-template-columns:1fr}.sidebar{min-height:0;padding:10px;display:flex;overflow:auto}.sidebar .brand{display:none}.sidebar button{white-space:nowrap}.panels{grid-template-columns:1fr}.steps{grid-template-columns:1fr}}@media(max-width:600px){nav > div > a:not(:last-child){display:none}nav{height:70px}.hero-img{height:430px}.hero-bottom{align-items:start}.grid{grid-template-columns:1fr!important}.section-head{align-items:start;flex-direction:column}.services>div{gap:12px;flex-wrap:wrap}.services p{width:100%;padding-left:35px}.stats{grid-template-columns:1fr}.calendar div{min-height:40px;padding:5px;font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card img{transition:none}}

/* V2 UX refinement */
.reveal-token{opacity:.17;transition:opacity .08s linear;color:inherit}
.reveal-token.is-on{opacity:1}
.booking-overlay{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.72);display:none;align-items:center;justify-content:center;padding:20px}
.booking-overlay.open{display:flex}
.booking-dialog{background:#f7f6f2;color:#111;border-radius:14px;width:min(760px,100%);max-height:90vh;overflow:auto;padding:clamp(22px,4vw,42px)}
.booking-head{display:flex;justify-content:space-between;align-items:start;gap:20px}
.booking-head h2{font-family:Manrope,sans-serif;font-size:clamp(30px,5vw,56px);letter-spacing:-.07em;margin:8px 0 18px}
.close-booking{background:none;border:1px solid #ccc;border-radius:50%;height:38px;width:38px;font-size:20px}
.booking-types,.booking-times{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 25px}
.booking-choice{border:1px solid #d1d1d1;background:#fff;padding:12px 17px;border-radius:8px;color:#111}
.booking-choice.active{background:#111;color:#fff;border-color:#111}
.booking-dialog label{font-size:12px;font-weight:700;display:block;margin:18px 0 8px}
.booking-dialog input,.booking-dialog textarea{width:100%;padding:13px;border:1px solid #d1d1d1;border-radius:8px;background:#fff;color:#111}
.booking-dialog textarea{min-height:95px}
.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.booking-note{font-size:12px;color:#777;line-height:1.6}
.project-config{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.project-config label{font-size:12px;font-weight:700;display:block;margin-bottom:8px}
.project-config select,.project-config input{width:100%;padding:12px;border:1px solid #ddd;border-radius:7px}
.project-demo{border:1px solid #ddd;border-radius:9px;padding:20px;margin-top:20px}
.project-demo-title{font-family:Manrope;font-size:clamp(30px,5vw,58px);letter-spacing:-.08em;line-height:.95}
.design-banner{background:#fff4dc;border:1px solid #eed49d;color:#664c1a;padding:12px 18px;border-radius:8px;font-size:12px;line-height:1.5;margin:0 0 20px}
@media(max-width:600px){.booking-grid,.project-config{grid-template-columns:1fr}}


#site{display:block}.case-link{display:block;text-decoration:none;color:inherit}.card img{display:block}.hero-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}.word-reveal .reveal-token{display:inline;opacity:.18}.word-reveal .reveal-token.active{opacity:1}.booking-overlay input,.booking-overlay textarea{font:inherit}.booking-overlay .btn{cursor:pointer}.booking-overlay .btn:disabled{opacity:.5}.project-empty{padding:50px 0;color:#777}.case-content{padding:90px 6vw}.case-content img{max-width:100%;height:auto}.case-content h2{font-size:clamp(40px,6vw,95px)}.case-link img{transition:transform .7s}.case-link:hover img{transform:scale(1.04)}@media(max-width:600px){#project-grid{grid-template-columns:1fr!important}}
/* WASSIMVISUALS V1.2 — creative polish (non-destructive to V2 layout) */
:root{--ease-editorial:cubic-bezier(.22,1,.36,1)}body{font-feature-settings:"ss01" on}a,button{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #b52331;outline-offset:4px}nav{position:relative;z-index:2}nav a{transition:opacity .25s}nav a:hover{opacity:.55}.hero h1{overflow-wrap:break-word;text-wrap:balance}.hero-img{overflow:hidden}.hero-img img{transition:transform 1.5s var(--ease-editorial)}.hero-img:hover img{transform:scale(1.025)}.card img{transition:transform .85s var(--ease-editorial)}.card h3{transition:letter-spacing .5s var(--ease-editorial)}.card:hover h3{letter-spacing:-.055em}.services>div{transition:padding .4s var(--ease-editorial),background .4s}.services>div:hover{padding-left:16px;background:rgba(20,20,20,.025)}.pill{transition:transform .35s var(--ease-editorial),background .3s,color .3s}.pill:hover{transform:translateY(-3px)}.section.spacing-balanced{padding-top:90px;padding-bottom:90px}.section.spacing-compact{padding-top:60px;padding-bottom:60px}.hero.spacing-compact{min-height:0;padding-bottom:25px}.hero.spacing-balanced{min-height:78vh}.layout-minimal> .wrap,.layout-minimal.wrap{max-width:1250px}.layout-split .section-head{gap:7vw}.motion-none .word-reveal .reveal-token{opacity:1!important}.motion-subtle h2{animation:editorialFade 1s var(--ease-editorial) both}@keyframes editorialFade{from{opacity:.45;transform:translateY(12px)}to{opacity:1;transform:none}}
/* Hybrid Creative Case Studies */
.creative-case{background:var(--case-bg)!important;color:var(--case-fg)!important;overflow-x:hidden}.creative-case a{color:inherit;text-decoration:none}.case-progress{position:fixed;z-index:99;top:0;left:0;width:100%;height:3px;background:var(--case-fg);mix-blend-mode:difference;transform:scaleX(0);transform-origin:left}.case-hero-v2{min-height:90svh;background:var(--case-accent)!important;color:var(--case-fg)!important;padding:0 clamp(22px,5vw,90px) clamp(45px,5vw,90px);display:flex;flex-direction:column;justify-content:space-between}.case-topbar{min-height:100px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid currentColor}.case-brand{font:800 21px Manrope,sans-serif;letter-spacing:-.09em}.case-back{font-size:11px;letter-spacing:.1em;font-weight:700}.case-back span{margin-left:12px}.case-hero-content{padding-top:95px}.case-eyebrow{opacity:.75}.case-eyebrow span{margin:0 12px}.case-hero-v2 h1{font:800 clamp(75px,13vw,230px)/.87 Manrope,sans-serif;letter-spacing:-.1em;overflow-wrap:anywhere;max-width:1450px;margin:30px 0 75px}.case-hero-foot{display:flex;justify-content:space-between;align-items:end;gap:30px;border-top:1px solid currentColor;padding-top:20px}.case-hero-foot p{max-width:530px;font-size:clamp(16px,1.6vw,23px);line-height:1.5}.case-index{font-size:11px;letter-spacing:.14em;white-space:nowrap}.case-index span{margin-left:20px}.case-full-image{margin:0;overflow:hidden;background:#191919}.case-full-image img{width:100%;height:min(85svh,950px);object-fit:cover;display:block}.case-cover img{height:min(100svh,1050px)}.case-full-image figcaption{display:flex;justify-content:space-between;gap:20px;padding:18px clamp(20px,5vw,90px);font-size:13px;background:var(--case-bg);color:var(--case-fg)}.case-block{background:var(--case-bg);color:var(--case-fg)}.case-block-inner{padding:clamp(90px,13vw,210px) clamp(22px,5vw,90px);display:grid;grid-template-columns:28% 1fr;gap:35px;max-width:1700px;margin:auto}.case-block-copy h2{font:800 clamp(40px,6vw,105px)/1 Manrope,sans-serif;letter-spacing:-.085em;margin:0 0 30px}.case-block-copy p{font-size:clamp(20px,2.3vw,35px);line-height:1.4;max-width:950px}.case-block-statement .case-block-inner{display:block}.case-block-statement .case-block-label{margin-bottom:50px}.case-block-statement .case-block-copy h2{font-size:clamp(60px,10vw,160px)}.case-block-statement .case-block-copy p{max-width:1100px}.case-block-outcome{background:var(--case-accent)}.case-split-grid{display:grid;grid-template-columns:1fr 1fr;min-height:640px}.case-split-copy{padding:clamp(50px,7vw,130px) clamp(22px,5vw,90px);display:flex;flex-direction:column;justify-content:center}.case-split-copy h2,.case-gallery-head h2,.case-video-panel h2{font:800 clamp(42px,6vw,95px)/1 Manrope,sans-serif;letter-spacing:-.08em}.case-split-copy p{font-size:clamp(17px,2vw,25px);line-height:1.6;max-width:600px}.case-split-image{min-height:520px}.case-split-image img{width:100%;height:100%;object-fit:cover}.case-gallery-wrap{padding:clamp(60px,9vw,150px) clamp(22px,5vw,90px)}.case-gallery-head{display:flex;align-items:start;justify-content:space-between;gap:30px}.case-gallery-head h2{max-width:70%;margin-top:0}.case-gallery-wrap>img{width:100%;max-height:850px;object-fit:cover}.case-gallery-wrap>p{font-size:19px;max-width:720px;margin-top:25px}.case-video-panel{padding:clamp(70px,9vw,160px) clamp(22px,5vw,90px);background:#0c0c0c;color:white}.case-video-panel img{width:100%;max-height:800px;object-fit:cover}.case-video-link{display:inline-flex;gap:80px;padding:20px 0;border-bottom:1px solid #aaa;font-size:13px;letter-spacing:.15em;font-weight:700;margin-top:30px}.case-end{background:#0f0f0f;color:white;padding:clamp(80px,10vw,170px) clamp(22px,5vw,90px) 30px}.case-end h2{font-size:clamp(65px,10vw,160px);line-height:.92;margin:45px 0 70px}.case-end h2 em{font-family:'Instrument Serif',serif;font-weight:400}.case-end>a{display:inline-flex;justify-content:space-between;gap:50px;padding:20px 30px;border:1px solid white;border-radius:50px;font-size:12px;letter-spacing:.12em}.case-footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #555;padding-top:30px;margin-top:110px;font-size:11px;letter-spacing:.1em}.case-waiting{opacity:0;transform:translateY(25px);transition:opacity .9s var(--ease-editorial),transform .9s var(--ease-editorial)}.case-waiting.case-visible{opacity:1;transform:none}
@media(max-width:800px){.case-block-inner{grid-template-columns:1fr;gap:40px}.case-split-grid{grid-template-columns:1fr}.case-split-image{min-height:380px}.case-hero-v2{min-height:75svh}.case-hero-v2 h1{margin:30px 0 60px}.case-hero-foot{align-items:start;flex-direction:column}.case-gallery-head{display:block}.case-gallery-head h2{max-width:100%;margin-top:25px}.case-full-image img{height:auto;min-height:340px}.case-brand{font-size:17px}}
@media(prefers-reduced-motion:reduce){.case-waiting{opacity:1!important;transform:none!important;transition:none!important}.motion-subtle h2{animation:none!important}.hero-img img,.card img{transition:none!important}}

/* Unified Font Awesome */
.fa-solid,.fa-regular,.fa-brands{font-style:normal;line-height:1;vertical-align:-.075em}a .fa-solid,button .fa-solid,.btn .fa-solid{font-size:.88em;margin-inline-start:.3em}.close-booking .fa-solid{margin:0;font-size:1em}.fa-arrow-up-right{transition:transform .2s ease}a:hover .fa-arrow-up-right,button:hover .fa-arrow-up-right{transform:translate(2px,-2px)}@media(prefers-reduced-motion:reduce){.fa-arrow-up-right{transition:none}}

/* Genuine Font Awesome Free vector paths, embedded as SVG, no font file or CDN. */
.fa-inline-icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em;overflow:visible;flex-shrink:0}.fa-icon-arrow-up-right{transform:rotate(-45deg);transition:transform .2s ease}.fa-icon-arrow-up-right-from-square{width:.9em;height:.9em}a:hover .fa-icon-arrow-up-right,button:hover .fa-icon-arrow-up-right{transform:rotate(-45deg) translateX(2px)}.close-booking .fa-inline-icon,.project-modal-close .fa-inline-icon{margin:0}@media(prefers-reduced-motion:reduce){.fa-inline-icon{transition:none!important}}

/* V2 public project external links only; no changes to Portfolio cards/effects */
.case-social-links{display:flex;align-items:center;flex-wrap:wrap;gap:11px;padding:25px clamp(20px,5vw,80px);background:var(--case-bg,#171717);color:var(--case-fg,#fff);border-top:1px solid #ffffff24}
.case-social-links>.micro{margin-right:auto;color:inherit;opacity:.68}
.case-social-links .project-external-link{display:inline-flex;align-items:center;gap:11px;padding:12px 17px;border:1px solid currentColor;color:inherit;border-radius:4px;text-decoration:none;font:700 11px/1.2 "DM Sans",Arial,sans-serif}
.case-social-links .project-external-link:hover{background:#ffffff16}
.case-social-links .fa-svg{width:14px;height:14px}
.case-social-links .project-external-link .fa-svg:last-child{width:10px;height:10px}
@media(max-width:650px){.case-social-links>.micro{width:100%}}

/* V2.2 logo weight refinement: brand is unchanged in size and layout. */
nav .brand strong{font-weight:800}nav .brand .brand-light{font-weight:300}nav .brand sup{font-size:.43em;vertical-align:super;margin-left:.12em;font-weight:400;letter-spacing:0}

/* V2.2.4: mobile logo is the FIRST nav anchor, not a menu link. */
@media(max-width:600px){
  nav > a.brand.wv-public-logo,nav > a.brand.wv-public-logo:not(:last-child){
    display:inline-flex!important;visibility:visible!important;opacity:1!important;
    flex:0 1 auto;min-width:0;margin-left:0;max-width:min(57vw,235px);
  }
  nav > a.brand.wv-public-logo .wv-logo-image{
    display:block!important;width:auto;max-width:100%;height:auto;max-height:40px;object-fit:contain;
  }
  nav > div{display:flex;align-items:center;flex:0 0 auto;min-width:0}
  nav > div > a:last-child{white-space:nowrap;margin-left:10px;font-size:10px}
}
@media(max-width:380px){nav > a.brand.wv-public-logo{max-width:54vw}nav > div > a:last-child{font-size:9px}}
