.inner-page { background: var(--paper); color: var(--ink); }
.inner-page .site-header { background: rgba(13,7,24,.94); }
.inner-page .brand img { width: 94px; }
.inner-page .page-hero { position: relative; overflow: hidden; padding: 155px 0 92px; background: var(--ink); color: #fff; }
.inner-page .page-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(#000,transparent); }
.inner-page .page-hero::after { content:""; position:absolute; width:600px; height:600px; border-radius:50%; left:-260px; top:-220px; background:radial-gradient(circle,rgba(128,65,185,.32),transparent 68%); }
.page-hero-content { position:relative; z-index:2; }
.breadcrumb { display:flex; align-items:center; gap:12px; color:#93889e; font-size:.72rem; margin-bottom:28px; }
.breadcrumb a:hover { color:var(--orange); }
.breadcrumb i { width:24px; height:1px; background:#61556e; }
.page-hero h1 { max-width:900px; font-size:clamp(2.5rem,3.8vw,3.8rem); line-height:1.12; letter-spacing:-.035em; margin:0; }
.page-hero h1 em { color:var(--orange); font-style:normal; }
.page-hero .intro { color:#bdb2c7; font-size:1rem; max-width:700px; line-height:1.95; margin:26px 0 0; }
.page-hero-meta { display:flex; flex-wrap:wrap; gap:10px; margin-top:35px; }
.page-hero-meta span { border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:7px 13px; color:#c9c0d1; font:600 .65rem var(--latin); }

/* Work page hero visual */
.work-hero { min-height:680px; display:flex; align-items:center; }
.work-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:1.05fr .95fr; gap:70px; align-items:center; }
.work-hero .page-hero-content { min-width:0; }
.work-hero-visual { position:relative; direction:ltr; height:430px; isolation:isolate; }
.work-hero-visual::before { content:""; position:absolute; inset:40px 25px; border-radius:50%; background:radial-gradient(circle,rgba(116,54,169,.24),rgba(13,7,24,0) 67%); filter:blur(5px); }
.work-orbit { position:absolute; border:1px dashed rgba(255,255,255,.13); border-radius:50%; animation:workOrbit 28s linear infinite; }
.work-orbit-one { inset:28px 36px; }
.work-orbit-two { inset:76px 3px 18px; border-color:rgba(255,173,22,.18); animation-direction:reverse; }
.work-visual-card { position:absolute; background:linear-gradient(135deg,rgba(45,28,65,.97),rgba(20,13,32,.97)); border:1px solid rgba(255,255,255,.13); box-shadow:0 28px 70px rgba(0,0,0,.38); backdrop-filter:blur(14px); }
.work-visual-main { z-index:2; width:78%; left:10%; top:78px; padding:26px; border-radius:27px; transform:rotate(-2deg); animation:workFloatMain 6s ease-in-out infinite; }
.work-visual-head { display:flex; align-items:center; justify-content:space-between; color:#a99db5; font:700 .62rem var(--latin); letter-spacing:.16em; }
.work-visual-head i { width:8px; height:8px; border-radius:50%; background:var(--orange); box-shadow:0 0 14px rgba(255,173,22,.8); }
.work-visual-bars { height:155px; display:flex; align-items:end; gap:12px; margin:27px 0 22px; padding:0 8px; border-bottom:1px solid rgba(255,255,255,.12); }
.work-visual-bars i { display:block; flex:1; border-radius:8px 8px 2px 2px; background:linear-gradient(to top,rgba(255,173,22,.25),var(--orange)); box-shadow:0 0 20px rgba(255,173,22,.08); }
.work-visual-bars i:nth-child(1) { height:31%; }
.work-visual-bars i:nth-child(2) { height:48%; }
.work-visual-bars i:nth-child(3) { height:43%; }
.work-visual-bars i:nth-child(4) { height:72%; }
.work-visual-bars i:nth-child(5) { height:94%; }
.work-visual-flow { display:flex; align-items:center; justify-content:space-between; color:#fff; font:700 .72rem var(--latin); letter-spacing:.12em; }
.work-visual-flow span { color:var(--orange); font-size:1.15rem; }
.work-visual-a,.work-visual-b { z-index:3; min-width:132px; padding:15px 18px; border-radius:17px; display:grid; gap:2px; animation:workFloatMini 5s ease-in-out infinite; }
.work-visual-a { right:-2px; top:38px; transform:rotate(4deg); }
.work-visual-b { left:-7px; bottom:37px; transform:rotate(-4deg); animation-delay:-2.2s; }
.work-visual-a strong,.work-visual-b strong { color:#fff; font:700 1.55rem var(--latin); line-height:1.15; }
.work-visual-a span,.work-visual-b span { color:#a99fb3; font:600 .55rem var(--latin); letter-spacing:.08em; }
.work-sticker { position:absolute; z-index:4; padding:7px 11px; border-radius:7px; background:var(--paper); color:var(--ink); font:700 .53rem var(--latin); letter-spacing:.12em; box-shadow:0 10px 25px rgba(0,0,0,.2); animation:workFloatSticker 4.8s ease-in-out infinite; }
.work-sticker-a { left:45px; top:22px; transform:rotate(-7deg); }
.work-sticker-b { right:22px; bottom:27px; transform:rotate(6deg); background:var(--orange); animation-delay:-1.4s; }
@keyframes workOrbit { to { transform:rotate(360deg); } }
@keyframes workFloatMain { 0%,100% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-10px) rotate(-1deg); } }
@keyframes workFloatMini { 0%,100% { margin-top:0; } 50% { margin-top:-10px; } }
@keyframes workFloatSticker { 0%,100% { margin-top:0; } 50% { margin-top:-8px; } }

.work-listing { padding:100px 0 135px; }
.work-intro { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:48px; }
.work-intro h2,.story-heading h2,.approach-heading h2 { font-size:clamp(2.25rem,4vw,3.8rem); line-height:1.2; letter-spacing:-.04em; margin:0; }
.work-intro p { max-width:450px; color:#716979; font-size:.85rem; margin:0; }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.project-card { min-height:590px; border-radius:30px; overflow:hidden; position:relative; padding:36px; display:flex; flex-direction:column; justify-content:space-between; }
.project-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(10,5,18,.96),rgba(10,5,18,.05) 66%); }
.project-card-primary { color:#fff; background:#17303c; }
.project-card-primary .project-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 20%; transition:transform .6s ease; }
.project-card:hover .project-photo { transform:scale(1.035); }
.project-card-secondary { background:var(--orange); color:var(--ink); }
.project-card-secondary::before { content:"90K"; position:absolute; left:-18px; top:80px; font:800 8rem var(--latin); letter-spacing:-.08em; transform:rotate(-8deg); opacity:.13; }
.project-card-secondary::after { background:linear-gradient(to top,rgba(255,145,0,.78),transparent 55%); }
.project-top,.project-content { position:relative; z-index:2; }
.project-top { display:flex; justify-content:space-between; align-items:center; }
.project-index { font:700 .7rem var(--latin); letter-spacing:.14em; }
.project-tag { border:1px solid currentColor; border-radius:999px; padding:7px 12px; font-size:.62rem; }
.project-content h3 { font-size:clamp(1.7rem,2.5vw,2.35rem); line-height:1.12; letter-spacing:-.03em; margin:0 0 12px; overflow-wrap:anywhere; }
.project-content p { font-size:.8rem; max-width:560px; opacity:.78; }
.project-stats { display:flex; gap:25px; margin:25px 0; }
.project-stats strong { display:block; font:700 1.5rem var(--latin); }
.project-stats span { font-size:.58rem; opacity:.68; }
.project-link { display:inline-flex; align-items:center; gap:16px; font-size:.76rem; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:3px; }
.project-card-secondary .project-content { color:var(--ink); }
.project-card-secondary .project-stats { display:grid; grid-template-columns:1fr; gap:8px; }
.project-card-secondary .project-stats div { padding:12px 0; border-bottom:1px solid rgba(13,7,24,.14); }
.coming-card { margin-top:22px; border:1px dashed #b9b0a5; border-radius:26px; padding:34px; display:flex; justify-content:space-between; gap:20px; align-items:center; color:#776e7e; }
.coming-card strong { color:var(--ink); }
.work-filters { display:flex; flex-wrap:wrap; gap:9px; margin:-15px 0 38px; direction:ltr; }
.work-filter { appearance:none; border:1px solid rgba(13,7,24,.16); border-radius:999px; padding:10px 15px; color:#625a69; background:rgba(255,255,255,.45); font:700 .62rem var(--latin); letter-spacing:.04em; cursor:pointer; transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease; }
.work-filter:hover { transform:translateY(-2px); color:var(--ink); border-color:rgba(13,7,24,.35); }
.work-filter.is-active { color:#120a1f; background:var(--orange); border-color:var(--orange); box-shadow:0 10px 26px rgba(255,173,22,.2); }
.project-card[hidden] { display:none !important; }

.case-hero { padding-bottom:80px !important; }
.case-hero-grid { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:70px; }
.case-hero h1 { font-family:var(--latin); direction:ltr; text-align:right; font-size:clamp(2.5rem,3.6vw,3.6rem); line-height:1.06; }
.case-hero .case-subhead { color:var(--orange); font-size:1.15rem; font-weight:700; margin:18px 0 10px; }
.case-client-platforms { display:flex; flex-wrap:wrap; gap:8px; margin:15px 0 8px; direction:ltr; }
.case-client-platforms a { display:inline-flex; align-items:center; gap:7px; border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:7px 11px; color:#c9c0d1; font:600 .62rem var(--latin); transition:.2s ease; }
.case-client-platforms a:hover { color:var(--ink); background:var(--orange); border-color:var(--orange); transform:translateY(-2px); }
.case-client-platforms svg { width:14px; height:14px; fill:currentColor; stroke:none; }
.case-client-platforms svg rect,.case-client-platforms svg circle:not(.social-dot) { fill:none; stroke:currentColor; stroke-width:1.8; }
.case-client-platforms .social-dot { fill:currentColor; stroke:none; }
.case-hero .intro { margin-top:10px; }
.portrait-shell { position:relative; height:580px; border-radius:32px; overflow:hidden; border:1px solid rgba(255,255,255,.16); background:#142833; }
.portrait-shell::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(13,7,24,.88),transparent 55%); }
.portrait-shell img { width:100%; height:100%; object-fit:cover; object-position:center; }
.portrait-badge { position:absolute; z-index:2; bottom:24px; right:24px; left:24px; display:flex; justify-content:space-between; align-items:end; }
.portrait-badge strong { font:700 3.6rem var(--latin); color:var(--orange); line-height:1; }
.portrait-badge span { color:#d8cedf; font-size:.65rem; }
.results-band { background:var(--orange); color:var(--ink); }
.results-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.results-grid div { padding:38px 30px; border-left:1px solid rgba(13,7,24,.14); }
.results-grid div:last-child { border-left:0; }
.results-grid strong { display:block; font:700 2.6rem var(--latin); line-height:1; }
.results-grid span { font-size:.72rem; }

.story-section { padding:120px 0; }
.story-heading { display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; align-items:start; margin-bottom:70px; }
.story-heading>p { color:#716979; line-height:2; font-size:.92rem; }
.challenge-list { display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid #cfc7ba; border-right:1px solid #cfc7ba; }
.challenge-list article { min-height:235px; padding:25px; border-left:1px solid #cfc7ba; border-bottom:1px solid #cfc7ba; }
.challenge-list span,.approach-step>span { font:700 .65rem var(--latin); color:#a0792f; }
.challenge-list h3 { font-size:1rem; margin:55px 0 8px; }
.challenge-list p { font-size:.7rem; color:#766d7f; }
.approach { background:var(--ink-2); color:#fff; padding:120px 0; }
.approach-heading { text-align:center; margin-bottom:70px; }
.approach-heading .kicker { color:var(--orange); }
.approach-steps { display:grid; gap:16px; }
.approach-step { display:grid; grid-template-columns:70px .75fr 1.25fr; gap:30px; align-items:start; padding:30px; border:1px solid var(--line); border-radius:22px; transition:.25s; }
.approach-step:hover { background:rgba(255,255,255,.04); border-color:rgba(255,173,22,.32); }
.approach-step h3 { margin:0; font-size:1.15rem; }
.approach-step p { margin:0; color:#9f94aa; font-size:.78rem; }
.pillars { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.pillars b { font:600 .6rem var(--latin); border:1px solid rgba(255,255,255,.13); padding:6px 10px; border-radius:999px; color:#c3b9ca; }

.proof { padding:120px 0; background:var(--paper); }
.proof-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:55px; align-items:start; }
.proof-card { border-radius:24px; overflow:hidden; background:#ded8ce; min-height:0; position:relative; margin:0; }
.proof-card img { width:100%; height:auto; object-fit:contain; }
.proof-card span { position:absolute; right:16px; top:16px; background:rgba(13,7,24,.86); color:#fff; border-radius:999px; padding:6px 10px; font-size:.6rem; }
.gallery { padding:120px 0; background:#e8e2d8; }
.gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:14px; margin-top:55px; }
.gallery-item { overflow:hidden; border-radius:20px; min-height:310px; background:#cfc7ba; margin:0; }
.gallery-item:nth-child(1),.gallery-item:nth-child(2) { grid-column:span 6; }
.gallery-item:nth-child(n+3) { grid-column:span 4; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:.45s; }
.gallery-item:hover img { transform:scale(1.04); }
.proof-card img,.gallery-item img { cursor:zoom-in; }

/* Case-study image lightbox */
.image-lightbox { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:56px 90px; background:rgba(7,3,13,.94); backdrop-filter:blur(16px); opacity:0; visibility:hidden; transition:opacity .22s ease,visibility .22s ease; }
.image-lightbox.is-open { opacity:1; visibility:visible; }
.image-lightbox-figure { width:min(1180px,100%); height:min(82vh,860px); margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; }
.image-lightbox-image { display:block; max-width:100%; max-height:calc(82vh - 50px); width:auto; height:auto; object-fit:contain; border-radius:16px; box-shadow:0 30px 90px rgba(0,0,0,.48); }
.image-lightbox-caption { color:#d7cede; font-size:.72rem; text-align:center; min-height:1.4em; }
.image-lightbox-close,.image-lightbox-nav { position:absolute; border:1px solid rgba(255,255,255,.18); background:rgba(31,20,45,.8); color:#fff; display:grid; place-items:center; cursor:pointer; transition:.2s ease; }
.image-lightbox-nav,.image-lightbox-count { direction:ltr; }
.image-lightbox-close:hover,.image-lightbox-nav:hover { color:var(--ink); background:var(--orange); border-color:var(--orange); }
.image-lightbox-close { top:22px; right:22px; width:46px; height:46px; border-radius:50%; font:300 1.85rem/1 var(--latin); }
.image-lightbox-nav { top:50%; width:50px; height:64px; margin-top:-32px; border-radius:18px; font:400 2rem/1 var(--latin); }
.image-lightbox-prev { right:22px; }
.image-lightbox-next { left:22px; }
.image-lightbox-count { position:absolute; left:50%; bottom:20px; transform:translateX(-50%); color:#9f94aa; font:600 .65rem var(--latin); letter-spacing:.12em; }
body.lightbox-open { overflow:hidden; }
.bigger-result { padding:120px 0; background:var(--orange); color:var(--ink); }
.bigger-inner { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start; }
.bigger-result blockquote { font-size:clamp(1.6rem,3.2vw,2.8rem); line-height:1.6; letter-spacing:-.025em; margin:0; font-weight:700; }
.bigger-result p { font-size:.82rem; max-width:560px; }
.services-line { margin-top:36px; display:flex; flex-wrap:wrap; gap:8px; }
.services-line span { border:1px solid rgba(13,7,24,.25); border-radius:999px; padding:7px 12px; font:600 .62rem var(--latin); }
.case-nav { padding:35px 0; background:var(--ink); }
.case-nav-inner { display:flex; justify-content:space-between; align-items:center; }
.case-nav a { display:flex; align-items:center; gap:12px; color:#c7bdcf; font-size:.72rem; }
.case-nav a:hover { color:var(--orange); }

@media (max-width:900px) {
  .page-hero { padding-top:125px; }
  .work-hero { min-height:auto; }
  .work-hero-grid { grid-template-columns:1fr; gap:34px; }
  .work-hero-visual { width:min(520px,100%); height:390px; margin-inline:auto; }
  .project-grid,.case-hero-grid,.story-heading,.bigger-inner { grid-template-columns:1fr; }
  .project-card-secondary { min-height:420px; }
  .portrait-shell { height:520px; }
  .challenge-list { grid-template-columns:repeat(2,1fr); }
  .approach-step { grid-template-columns:50px 1fr; }
  .approach-step p { grid-column:2; }
  .proof-grid { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .inner-page .brand img { width:78px; }
  .page-hero { padding:105px 0 65px; }
  .page-hero h1,.case-hero h1 { font-size:2.2rem; line-height:1.14; }
  .work-hero-grid { gap:24px; }
  .work-hero-visual { height:315px; }
  .work-visual-main { width:84%; left:8%; top:55px; padding:18px; border-radius:22px; }
  .work-visual-bars { height:105px; gap:8px; margin:20px 0 15px; }
  .work-visual-a,.work-visual-b { min-width:105px; padding:11px 14px; }
  .work-visual-a strong,.work-visual-b strong { font-size:1.2rem; }
  .work-visual-a { right:0; top:26px; }
  .work-visual-b { left:0; bottom:20px; }
  .work-sticker-a { left:20px; top:8px; }
  .work-sticker-b { right:9px; bottom:8px; }
  .work-listing,.story-section,.approach,.proof,.gallery,.bigger-result { padding:80px 0; }
  .work-intro { display:block; }
  .work-intro p { margin-top:20px; }
  .project-card { min-height:520px; padding:24px; }
  .project-content h3 { font-size:1.75rem; line-height:1.12; }
  .project-card-secondary { min-height:390px; }
  .project-stats { gap:15px; }
  .portrait-shell { height:420px; }
  .portrait-badge strong { font-size:2.7rem; }
  .results-grid { grid-template-columns:1fr; }
  .results-grid div { display:flex; justify-content:space-between; align-items:end; padding:22px 10px; border-left:0; border-bottom:1px solid rgba(13,7,24,.14); }
  .results-grid strong { font-size:2.1rem; }
  .story-heading { gap:25px; margin-bottom:45px; }
  .work-intro h2,.story-heading h2,.approach-heading h2 { font-size:2.25rem; }
  .challenge-list { grid-template-columns:1fr; }
  .challenge-list article { min-height:185px; }
  .challenge-list h3 { margin-top:35px; }
  .approach-step { padding:22px; gap:18px; }
  .gallery-grid { grid-template-columns:1fr; }
  .gallery-item:nth-child(n) { grid-column:auto; min-height:300px; }
  .image-lightbox { padding:68px 16px 58px; }
  .image-lightbox-figure { height:min(76vh,720px); }
  .image-lightbox-image { max-height:calc(76vh - 45px); border-radius:11px; }
  .image-lightbox-close { top:14px; right:14px; }
  .image-lightbox-nav { top:auto; bottom:13px; width:44px; height:40px; margin:0; border-radius:13px; }
  .image-lightbox-prev { right:14px; }
  .image-lightbox-next { left:14px; }
  .case-nav-inner { flex-direction:column; gap:18px; }
}
@media (prefers-reduced-motion:reduce) {
  .work-orbit,.work-visual-main,.work-visual-a,.work-visual-b,.work-sticker { animation:none; }
  .image-lightbox { transition:none; }
}

/* Warilla Physiotherapy — portfolio-led case study */
.warilla-case { --warilla-navy:#0e2d49; --warilla-green:#0d6837; --warilla-lime:#7bc816; }
.warilla-hero { position:relative; overflow:hidden; min-height:900px; padding:150px 0 100px; color:#fff; background:radial-gradient(circle at 15% 30%,rgba(123,200,22,.18),transparent 30%),linear-gradient(135deg,#07150f 0%,#0d2e21 47%,#102f4d 100%); }
.warilla-hero::before { content:""; position:absolute; inset:0; opacity:.15; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:74px 74px; mask-image:linear-gradient(to bottom,#000,transparent 88%); }
.warilla-hero::after { content:"W"; position:absolute; left:-3vw; bottom:-18vw; color:rgba(255,255,255,.025); font:700 52vw/1 var(--latin); letter-spacing:-.12em; }
.warilla-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:.84fr 1.16fr; gap:70px; align-items:center; }
.warilla-hero-copy { position:relative; z-index:3; }
.warilla-hero .breadcrumb { margin-bottom:34px; }
.warilla-hero .kicker { color:var(--warilla-lime); }
.warilla-client-mark { width:124px; height:116px; margin:22px 0 26px auto; padding:15px 17px; display:grid; place-items:center; border-radius:30px; background:rgba(255,255,255,.96); box-shadow:0 25px 70px rgba(0,0,0,.22); }
.warilla-case .warilla-client-mark { margin-left:0; margin-right:auto; }
.warilla-client-mark img { width:100%; height:100%; object-fit:contain; }
.warilla-hero h1 { margin:0; direction:ltr; text-align:right; font:700 clamp(2.55rem,3.7vw,4.1rem)/1 var(--latin); letter-spacing:-.05em; }
.warilla-case .warilla-hero h1 { text-align:left; }
.warilla-hero h1 em { color:var(--warilla-lime); font-style:normal; }
.warilla-hero .intro { max-width:590px; margin:28px 0 26px; color:#c6d5cc; }
.warilla-hero-art { position:relative; height:640px; direction:ltr; }
.warilla-hero-card { position:absolute; overflow:hidden; margin:0; border-radius:24px; border:1px solid rgba(255,255,255,.16); background:#173629; box-shadow:0 35px 80px rgba(0,0,0,.38); }
.warilla-hero-card img { width:100%; height:100%; object-fit:cover; }
.hero-card-one { z-index:3; width:48%; height:74%; left:23%; top:8%; transform:rotate(-3deg); }
.hero-card-two { z-index:2; width:38%; height:59%; right:0; bottom:2%; transform:rotate(8deg); }
.hero-card-three { z-index:1; width:38%; height:59%; left:0; bottom:1%; transform:rotate(-9deg); }
.warilla-orbit { position:absolute; display:block; border:1px solid rgba(123,200,22,.25); border-radius:50%; pointer-events:none; }
.orbit-one { width:570px; height:570px; top:25px; left:10px; animation:floatVisual 6.5s ease-in-out infinite; }
.orbit-two { width:430px; height:430px; top:95px; left:80px; border-style:dashed; animation:spin 22s linear infinite; }

.warilla-overview { padding:120px 0; background:#eff1e9; }
.warilla-overview-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:90px; align-items:start; }
.warilla-overview h2,.warilla-section-head h2 { margin:0; font-size:clamp(2.2rem,3.8vw,4rem); line-height:1.12; letter-spacing:-.04em; }
.warilla-overview-copy>p { margin:30px 0 34px; max-width:650px; color:#59645d; font-size:1rem; line-height:2; }
.warilla-color-row { display:flex; flex-wrap:wrap; gap:10px; direction:ltr; }
.warilla-color-row span { display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid rgba(14,45,73,.13); border-radius:999px; color:#55605a; font:600 .58rem var(--latin); background:#fff; }
.warilla-color-row span::before { content:""; width:18px; height:18px; border-radius:50%; background:var(--swatch); box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }

.warilla-showcase.gallery { padding:120px 0; background:#dde5d9; }
.warilla-showcase .kicker,.warilla-carousel-section .kicker { color:var(--warilla-green); }
.warilla-feed-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; align-items:stretch; }
.warilla-feed-grid .gallery-item { grid-column:span 4; min-height:0; aspect-ratio:4/5; border-radius:20px; background:#bfd0ba; }
.warilla-feed-grid .warilla-feed-feature { grid-column:span 8; grid-row:span 2; aspect-ratio:auto; }
.warilla-feed-grid .warilla-feed-wide { grid-column:span 8; }
.warilla-feed-grid .gallery-item img { object-fit:cover; }

.warilla-carousel-section { padding:120px 0; overflow:hidden; background:#f4f1e9; }
.warilla-section-head { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:end; margin-bottom:75px; }
.warilla-section-head>p { max-width:510px; margin:0; color:#667069; line-height:1.9; }
.warilla-carousel-group { margin-top:70px; }
.warilla-group-label { display:flex; justify-content:space-between; gap:20px; align-items:center; padding-bottom:14px; border-bottom:1px solid rgba(14,45,73,.17); direction:ltr; }
.warilla-group-label span { color:var(--warilla-lime); font:700 2rem var(--latin); }
.warilla-group-label strong { color:var(--warilla-navy); font:700 .72rem var(--latin); letter-spacing:.14em; }
.warilla-slide-track { display:flex; gap:14px; padding:22px 0 18px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--warilla-lime) rgba(14,45,73,.08); direction:ltr; }
.warilla-slide-track .gallery-item { flex:0 0 min(310px,72vw); min-height:0; aspect-ratio:4/5; grid-column:auto; scroll-snap-align:start; border-radius:18px; background:#d5ddd1; }
.warilla-slide-track .gallery-item img { object-fit:cover; }

.warilla-video-section { padding:120px 0; color:#fff; background:radial-gradient(circle at 80% 10%,rgba(123,200,22,.15),transparent 28%),#07150f; }
.warilla-section-head.light .kicker { color:var(--warilla-lime); }
.warilla-section-head.light>p { color:#9bb0a2; }
.warilla-video-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; direction:ltr; }
.warilla-video-card { position:relative; grid-column:span 6; height:340px; overflow:hidden; border-radius:24px; background:#0e2d49; color:#fff; isolation:isolate; }
.warilla-video-card.vertical { grid-column:span 3; height:480px; }
.warilla-video-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease,filter .5s ease; }
.warilla-video-card::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to top,rgba(3,12,8,.85),transparent 60%); }
.warilla-video-card:hover img { transform:scale(1.045); filter:saturate(1.12); }
.video-play { position:absolute; z-index:2; left:50%; top:50%; width:66px; height:66px; display:grid; place-items:center; transform:translate(-50%,-50%); border-radius:50%; color:#0b2217; background:var(--warilla-lime); box-shadow:0 16px 50px rgba(0,0,0,.28); transition:.25s ease; }
.video-play svg { width:27px; height:27px; fill:currentColor; transform:translateX(2px); }
.warilla-video-card:hover .video-play { transform:translate(-50%,-50%) scale(1.1); }
.warilla-video-card b { position:absolute; z-index:2; left:20px; bottom:18px; font:700 .58rem var(--latin); letter-spacing:.14em; }

.project-card-warilla { color:#fff; background:#173628; }
.project-card-warilla .project-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .6s ease; }
.project-card-warilla::after { background:linear-gradient(to top,rgba(4,19,12,.96),rgba(4,19,12,.04) 70%); }
.project-card-warilla .project-tag { color:#d9ff9f; }

@media (min-width:901px) {
  .project-grid .project-card-primary { grid-column:span 2; }
}

@media (max-width:900px) {
  .warilla-hero { min-height:auto; }
  .warilla-hero-grid,.warilla-overview-grid,.warilla-section-head { grid-template-columns:1fr; }
  .warilla-hero-art { height:560px; width:min(620px,100%); margin-inline:auto; }
  .warilla-feed-grid .gallery-item { grid-column:span 6; }
  .warilla-feed-grid .warilla-feed-feature,.warilla-feed-grid .warilla-feed-wide { grid-column:span 12; }
  .warilla-video-card,.warilla-video-card.vertical { grid-column:span 6; height:390px; }
}

@media (max-width:600px) {
  .warilla-hero { padding:112px 0 72px; }
  .warilla-client-mark { width:96px; height:90px; padding:12px 14px; border-radius:24px; }
  .warilla-hero h1 { font-size:2.35rem; line-height:1.05; }
  .warilla-hero-art { height:400px; margin-top:15px; }
  .hero-card-one { width:53%; height:76%; left:23%; }
  .hero-card-two,.hero-card-three { width:40%; height:60%; }
  .orbit-one { width:360px; height:360px; left:calc(50% - 180px); }
  .orbit-two { width:280px; height:280px; left:calc(50% - 140px); }
  .warilla-overview,.warilla-showcase.gallery,.warilla-carousel-section,.warilla-video-section { padding:80px 0; }
  .warilla-overview-grid,.warilla-section-head { gap:24px; }
  .warilla-overview h2,.warilla-section-head h2 { font-size:2.45rem; }
  .warilla-feed-grid { gap:9px; }
  .warilla-feed-grid .gallery-item { grid-column:span 6; border-radius:13px; }
  .warilla-feed-grid .warilla-feed-feature,.warilla-feed-grid .warilla-feed-wide { grid-column:span 12; }
  .warilla-video-grid { gap:10px; }
  .warilla-video-card,.warilla-video-card.vertical { grid-column:span 6; height:300px; border-radius:16px; }
  .video-play { width:52px; height:52px; }
}

@media (prefers-reduced-motion:reduce) {
  .warilla-orbit { animation:none; }
}

/* Flexible portfolio case studies */
.portfolio-case { --case-accent:#ffad16; --case-accent-2:#ff5a25; --case-deep:#130b22; --case-soft:#f4efe6; }
.portfolio-hero { position:relative; min-height:820px; padding:155px 0 100px; overflow:hidden; color:#fff; background:radial-gradient(circle at 18% 18%,color-mix(in srgb,var(--case-accent) 24%,transparent),transparent 34%),linear-gradient(135deg,var(--case-deep),#0d0718 70%); }
.portfolio-hero::before { content:""; position:absolute; inset:0; opacity:.18; background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px); background-size:70px 70px; mask-image:linear-gradient(#000,transparent 92%); }
.portfolio-hero::after { content:attr(data-mark); position:absolute; inset:auto -2vw -12vw auto; color:rgba(255,255,255,.025); font:700 34vw/1 var(--latin); letter-spacing:-.1em; }
.portfolio-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:56px; align-items:center; }
.portfolio-hero .breadcrumb { margin-bottom:34px; }
.portfolio-hero .kicker { color:var(--case-accent); }
.portfolio-hero h1 { margin:20px 0 0; font-size:clamp(2.5rem,3.6vw,4rem); line-height:1.05; letter-spacing:-.04em; }
.portfolio-hero h1 em { color:var(--case-accent); font-style:normal; }
.portfolio-case[dir="ltr"] .portfolio-hero h1 { font-family:var(--latin); }
.portfolio-hero .intro { max-width:610px; margin:28px 0 25px; color:#c8bed2; line-height:1.9; }
.portfolio-art { position:relative; height:585px; direction:ltr; }
.portfolio-art::before,.portfolio-art::after { content:""; position:absolute; border:1px solid color-mix(in srgb,var(--case-accent) 42%,transparent); border-radius:50%; }
.portfolio-art::before { width:500px; height:500px; left:calc(50% - 250px); top:35px; animation:spin 28s linear infinite; }
.portfolio-art::after { width:380px; height:380px; left:calc(50% - 190px); top:95px; border-style:dashed; animation:spin 20s linear infinite reverse; }
.portfolio-art figure { position:absolute; z-index:2; overflow:hidden; margin:0; border-radius:24px; background:#21162e; border:1px solid rgba(255,255,255,.16); box-shadow:0 28px 70px rgba(0,0,0,.38); }
.portfolio-art figure:nth-child(1) { width:48%; height:76%; top:6%; left:26%; transform:rotate(-3deg); }
.portfolio-art figure:nth-child(2) { width:38%; height:58%; left:0; bottom:2%; transform:rotate(-9deg); }
.portfolio-art figure:nth-child(3) { width:38%; height:58%; right:0; bottom:0; transform:rotate(8deg); }
.portfolio-art img { width:100%; height:100%; object-fit:cover; }
.portfolio-art.portfolio-art-single figure:nth-child(1) { width:min(500px,82%); height:auto; aspect-ratio:1; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-3deg); }
.portfolio-overview { padding:115px 0; background:var(--case-soft); }
.portfolio-overview-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; align-items:start; }
.portfolio-overview h2,.portfolio-section-head h2 { margin:0; font-size:clamp(2.2rem,3.8vw,4rem); line-height:1.12; letter-spacing:-.04em; }
.portfolio-overview-copy>p { margin:28px 0 32px; color:#655e68; line-height:2; font-size:.95rem; }
.portfolio-tags { display:flex; flex-wrap:wrap; gap:9px; }
.portfolio-tags span { padding:8px 12px; border:1px solid rgba(13,7,24,.14); border-radius:999px; font:600 .6rem var(--latin); background:rgba(255,255,255,.58); }
.portfolio-gallery { padding:120px 0; background:#f8f5ef; }
.portfolio-section-head { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:end; margin-bottom:62px; }
.portfolio-section-head .kicker { color:var(--case-accent-2); }
.portfolio-section-head>p { max-width:560px; margin:0; color:#716979; line-height:1.9; }
.portfolio-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; align-items:stretch; }
.portfolio-grid .gallery-item { grid-column:span 4; min-height:0; aspect-ratio:4/5; border-radius:20px; background:#e4ded5; }
.portfolio-grid .gallery-item:nth-child(1),.portfolio-grid .gallery-item:nth-child(8) { grid-column:span 8; grid-row:span 2; aspect-ratio:auto; }
.portfolio-grid .gallery-item:nth-child(5),.portfolio-grid .gallery-item:nth-child(11) { grid-column:span 8; }
.portfolio-grid .gallery-item img { object-fit:cover; }
.portfolio-videos { padding:115px 0; color:#fff; background:radial-gradient(circle at 80% 0,color-mix(in srgb,var(--case-accent) 18%,transparent),transparent 30%),var(--case-deep); }
.portfolio-videos .portfolio-section-head .kicker { color:var(--case-accent); }
.portfolio-videos .portfolio-section-head>p { color:#afa4ba; }
.portfolio-video-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; direction:ltr; }
.portfolio-video-card { position:relative; grid-column:span 6; height:390px; overflow:hidden; border-radius:24px; color:#fff; background:#23162f; isolation:isolate; }
.portfolio-video-grid.triple .portfolio-video-card { grid-column:span 4; }
.portfolio-video-card img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease,filter .45s ease; }
.portfolio-video-card::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to top,rgba(9,4,16,.9),transparent 64%); }
.portfolio-video-card:hover img { transform:scale(1.045); filter:saturate(1.12); }
.portfolio-video-card .video-play { background:var(--case-accent); color:var(--case-deep); }
.portfolio-video-card b { position:absolute; z-index:2; left:20px; bottom:18px; font:700 .58rem var(--latin); letter-spacing:.14em; }
.project-card-visual { color:#fff; background:var(--card-bg,#241634); }
.project-card-visual .project-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.project-card-visual::after { background:linear-gradient(to top,rgba(8,4,14,.96),rgba(8,4,14,.04) 72%); }
.project-card-visual:hover .project-photo { transform:scale(1.035); }
.project-card-visual .project-tag { color:var(--card-accent,#ffc45b); }
.brand-principles { padding:115px 0; color:#fff; background:var(--case-deep); }
.brand-principles-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:55px; }
.brand-principle { min-height:260px; padding:28px; border:1px solid rgba(255,255,255,.13); border-radius:22px; background:rgba(255,255,255,.035); }
.brand-principle span { color:var(--case-accent); font:700 .66rem var(--latin); }
.brand-principle h3 { margin:74px 0 10px; font:700 1.45rem var(--latin); }
.brand-principle p { margin:0; color:#b9adbf; font-size:.76rem; line-height:1.8; }

@media (max-width:900px) {
  .portfolio-hero { min-height:auto; }
  .portfolio-hero-grid,.portfolio-overview-grid,.portfolio-section-head { grid-template-columns:1fr; }
  .portfolio-art { width:min(620px,100%); height:550px; margin-inline:auto; }
  .portfolio-grid .gallery-item { grid-column:span 6; }
  .portfolio-grid .gallery-item:nth-child(1),.portfolio-grid .gallery-item:nth-child(5),.portfolio-grid .gallery-item:nth-child(8),.portfolio-grid .gallery-item:nth-child(11) { grid-column:span 12; }
  .portfolio-video-grid.triple .portfolio-video-card { grid-column:span 6; }
  .brand-principles-grid { grid-template-columns:1fr; }
  .brand-principle { min-height:220px; }
}
@media (max-width:600px) {
  .portfolio-hero { padding:112px 0 72px; }
  .portfolio-hero h1 { font-size:2.35rem; line-height:1.08; }
  .portfolio-art { height:405px; margin-top:18px; }
  .portfolio-art figure:nth-child(1) { width:54%; left:23%; }
  .portfolio-art figure:nth-child(2),.portfolio-art figure:nth-child(3) { width:41%; }
  .portfolio-art::before { width:360px; height:360px; left:calc(50% - 180px); }
  .portfolio-art::after { width:275px; height:275px; left:calc(50% - 137px); top:78px; }
  .portfolio-overview,.portfolio-gallery,.portfolio-videos { padding:78px 0; }
  .portfolio-overview-grid,.portfolio-section-head { gap:24px; }
  .portfolio-overview h2,.portfolio-section-head h2 { font-size:2.45rem; }
  .portfolio-grid { gap:9px; }
  .portfolio-grid .gallery-item { grid-column:span 6; border-radius:13px; }
  .portfolio-video-grid { gap:10px; }
  .portfolio-video-card,.portfolio-video-grid.triple .portfolio-video-card { grid-column:span 12; height:300px; border-radius:16px; }
}
@media (prefers-reduced-motion:reduce) {
  .portfolio-art::before,.portfolio-art::after { animation:none; }
}

/* Ratio-safe project galleries: true masonry with zero crop or stretch */
.gallery-grid,
.warilla-feed-grid,
.portfolio-grid,
.proof-grid {
  display:block;
  column-count:3;
  column-gap:16px;
  align-items:initial;
}
.gallery-grid .gallery-item,
.warilla-feed-grid .gallery-item,
.portfolio-grid .gallery-item,
.proof-grid .proof-card {
  display:inline-block;
  width:100%;
  height:auto;
  min-height:0;
  margin:0 0 16px;
  break-inside:avoid;
  page-break-inside:avoid;
  aspect-ratio:auto;
  grid-column:auto;
  grid-row:auto;
  vertical-align:top;
}
.gallery-grid .gallery-item:nth-child(n),
.warilla-feed-grid .gallery-item:nth-child(n),
.portfolio-grid .gallery-item:nth-child(n) {
  grid-column:auto;
  grid-row:auto;
  aspect-ratio:auto;
}
.gallery-grid .gallery-item img,
.warilla-feed-grid .gallery-item img,
.portfolio-grid .gallery-item img,
.proof-grid .proof-card img,
.warilla-slide-track .gallery-item img {
  display:block;
  width:100%;
  height:auto !important;
  object-fit:contain !important;
  aspect-ratio:auto;
  transform:none;
}
.gallery-grid .gallery-item:hover img,
.warilla-feed-grid .gallery-item:hover img,
.portfolio-grid .gallery-item:hover img { transform:none; }
.warilla-slide-track { align-items:flex-start; }
.warilla-slide-track .gallery-item { height:auto; min-height:0; aspect-ratio:auto; }

@media (max-width:900px) {
  .gallery-grid,.warilla-feed-grid,.portfolio-grid,.proof-grid { column-count:2; }
}
@media (max-width:600px) {
  .gallery-grid,.warilla-feed-grid,.portfolio-grid,.proof-grid { column-count:1; column-gap:0; }
  .gallery-grid .gallery-item,.warilla-feed-grid .gallery-item,.portfolio-grid .gallery-item,.proof-grid .proof-card { margin-bottom:10px; border-radius:13px; }
  .work-filters { flex-wrap:nowrap; overflow-x:auto; padding:2px 1px 10px; margin-bottom:28px; scrollbar-width:none; }
  .work-filters::-webkit-scrollbar { display:none; }
  .work-filter { flex:0 0 auto; }
}

/* English copy is wider than Arabic, so give it a calmer type scale and LTR alignment. */
html[lang="en"] .page-hero h1 {
  font-size:clamp(2.5rem,3.8vw,3.8rem);
  line-height:1.08;
  letter-spacing:-.035em;
}
html[lang="en"] .case-hero h1 {
  font-size:clamp(2.5rem,3.6vw,3.6rem);
  line-height:1.06;
  text-align:left;
}
html[lang="en"] .warilla-hero h1 {
  font-size:clamp(2.55rem,3.7vw,4.1rem);
  line-height:1;
  letter-spacing:-.05em;
  text-align:left;
}
html[lang="en"] .portfolio-case .portfolio-hero h1 {
  font-family:var(--latin);
  font-size:clamp(2.5rem,3.6vw,4rem);
  line-height:1.02;
  letter-spacing:-.05em;
  text-align:left;
}
html[lang="en"] .project-content h3 {
  font-size:clamp(1.7rem,2.5vw,2.35rem);
  line-height:1.12;
  letter-spacing:-.03em;
  overflow-wrap:anywhere;
}
html[lang="en"] .work-intro h2,
html[lang="en"] .story-heading h2,
html[lang="en"] .approach-heading h2 {
  font-size:clamp(2.15rem,3.55vw,3.35rem);
  line-height:1.14;
}
html[lang="en"] .portfolio-overview h2,
html[lang="en"] .portfolio-section-head h2,
html[lang="en"] .warilla-overview h2,
html[lang="en"] .warilla-section-head h2 {
  font-size:clamp(2.2rem,3.8vw,4rem);
  line-height:1.08;
}
html[lang="en"] .inner-page .final-cta h2 {
  font-size:clamp(2.5rem,4.2vw,4.35rem);
  line-height:1.12;
}
@media (min-width:1001px) {
  html[lang="en"] .project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  html[lang="en"] .page-hero h1,
  html[lang="en"] .case-hero h1 { font-size:2.2rem; line-height:1.1; }
  html[lang="en"] .warilla-hero h1,
  html[lang="en"] .portfolio-case .portfolio-hero h1 { font-size:2.35rem; line-height:1.02; letter-spacing:-.04em; }
  html[lang="en"] .project-content h3 { font-size:1.75rem; line-height:1.12; }
  html[lang="en"] .inner-page .final-cta h2 { font-size:2.35rem; line-height:1.12; }
}

/* Arabic hero titles need RTL shaping and more breathing room than Latin display type. */
html[lang="ar"] .portfolio-hero h1,
html[lang="ar"] .warilla-hero h1 {
  font-family:var(--font);
  direction:rtl;
  text-align:right;
  line-height:1.22;
  letter-spacing:0;
}
html[lang="ar"] .case-hero h1 {
  font-family:var(--font);
  direction:rtl;
  text-align:right;
  line-height:1.22;
  letter-spacing:0;
}
html[lang="ar"] .work-intro h2,
html[lang="ar"] .story-heading h2,
html[lang="ar"] .approach-heading h2,
html[lang="ar"] .portfolio-overview h2,
html[lang="ar"] .portfolio-section-head h2,
html[lang="ar"] .warilla-overview h2,
html[lang="ar"] .warilla-section-head h2,
html[lang="ar"] .inner-page .final-cta h2 {
  font-size:clamp(2.1rem,3.2vw,3.5rem);
  line-height:1.3;
  letter-spacing:0;
}
@media (max-width:600px) {
  html[lang="ar"] .portfolio-hero h1,
  html[lang="ar"] .warilla-hero h1,
  html[lang="ar"] .case-hero h1 { font-size:2.25rem; line-height:1.22; }
  html[lang="ar"] .work-intro h2,
  html[lang="ar"] .story-heading h2,
  html[lang="ar"] .approach-heading h2,
  html[lang="ar"] .portfolio-overview h2,
  html[lang="ar"] .portfolio-section-head h2,
  html[lang="ar"] .warilla-overview h2,
  html[lang="ar"] .warilla-section-head h2,
  html[lang="ar"] .inner-page .final-cta h2 { font-size:2.05rem; line-height:1.34; }
}
