/* ============================================================
   DORIS — art direction / social / graphic design portfolio
   ============================================================ */
:root{
  --red:#d42a1d;
  --red-dark:#8f140f;
  --orange:#ff5a22;
  --cream:#f7ead2;
  --paper:#f8f4ed;
  --ink:#1b1715;
  --muted:#7d6e68;
  --line:rgba(27,23,21,.16);
  --max:1320px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:"DM Sans",Arial,sans-serif;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit}
::selection{background:var(--red);color:#fff}
.grain{
  position:fixed; inset:0; z-index:9999; pointer-events:none; opacity:.16;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
.site-header{
  position:absolute; top:0; left:0; right:0; z-index:50;
  height:88px; padding:0 clamp(22px,4vw,68px);
  display:flex; align-items:center; justify-content:space-between;
  color:#fff;
}
.brand{font-family:"Anton",sans-serif;font-size:30px;letter-spacing:.02em}
.brand span{color:var(--cream)}
.desktop-nav{display:flex;gap:44px;align-items:center}
.desktop-nav a{
  font-size:12px;text-transform:uppercase;letter-spacing:.14em;position:relative
}
.desktop-nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:#fff;transition:right .35s var(--ease)
}
.desktop-nav a:hover::after,.desktop-nav a.active::after{right:0}
.menu-toggle{
  width:38px;height:38px;padding:7px;border:0;background:transparent;display:none;flex-direction:column;justify-content:center;gap:5px
}
.menu-toggle span{height:1px;background:#fff;width:100%;transition:.3s}
.mobile-menu{
  position:fixed;inset:0;z-index:45;background:var(--red-dark);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;
  transform:translateY(-105%);transition:transform .55s var(--ease);font-family:"Anton";font-size:42px;text-transform:uppercase
}
.mobile-menu.open{transform:none}

/* HERO */
.hero{
  min-height:860px;height:100svh;position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(180deg,#ee3d1e 0%,#c9231c 54%,#9b1715 100%);
  isolation:isolate;
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(circle at 40% 30%,rgba(255,96,48,.18),transparent 42%);
}
.hero-bg{position:absolute;inset:-10%;z-index:-2;opacity:0;transform:scale(1.08);animation:bgEnter 1.3s var(--ease) .05s forwards}
.hero-orb{position:absolute;border-radius:50%;filter:blur(40px)}
.hero-orb-a{width:640px;height:640px;left:-90px;bottom:-150px;background:rgba(101,0,0,.28)}
.hero-orb-b{width:540px;height:540px;right:-120px;top:80px;background:rgba(255,118,27,.24)}
@keyframes bgEnter{to{opacity:1;transform:scale(1)}}
.hero-welcome{
  position:absolute;
  top:9%;
  left:50%;
  width:max-content;
  white-space:nowrap;
  font-family:"Anton",sans-serif;
  font-size:clamp(190px,25vw,420px);
  line-height:.78;
  color:rgba(255,177,102,.28);
  letter-spacing:-.045em;
  opacity:0;
  transform:translate(-50%,-18px);
  animation:welcomeIn 1.15s var(--ease) .22s forwards;
  text-align:center
}
@keyframes welcomeIn{to{opacity:1;transform:translate(-50%,0)}}
.hero-person-wrap{
  position:absolute;
  right:max(50px,calc((100vw - 1360px)/2));
  left:auto;
  bottom:0;
  width:min(790px,55vw);
  height:82%;
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  opacity:0;
  transform:translateY(55px) scale(.98);
  animation:personIn 1.2s var(--ease) .55s forwards;
  z-index:3;
  pointer-events:none
}
.hero-person{height:100%;width:auto;max-width:none;object-fit:contain;object-position:right bottom;filter:drop-shadow(0 30px 30px rgba(70,0,0,.23))}
@keyframes personIn{to{opacity:1;transform:translateY(0)}}
.hero-copy{
  position:absolute;
  left:max(50px,calc((100vw - 1360px)/2));
  top:50%;
  bottom:auto;
  z-index:5;
  width:min(520px,38vw);
  opacity:0;
  transform:translate(-28px,-50%);
  animation:copyIn .95s var(--ease) .9s forwards
}
@keyframes copyIn{to{opacity:1;transform:translate(0,-50%)}}
.kicker,.eyebrow{
  margin:0 0 18px;font-size:11px;line-height:1.3;text-transform:uppercase;letter-spacing:.18em;font-weight:700
}
.hero-copy h1{
  position:static;
  width:auto;
  margin:0 0 18px;
  font-family:"DM Sans",sans-serif;
  text-transform:uppercase;
  font-size:clamp(44px,4.6vw,78px);
  line-height:1.02;
  letter-spacing:-.05em;
  white-space:normal;
  text-align:left;
  text-shadow:0 2px 0 rgba(82,0,0,.14);
  z-index:6
}
.hero-copy h1 span{font-weight:800}
.hero-copy h1 br + *{font-weight:300}
.hero-intro{max-width:420px;font-size:clamp(18px,2vw,24px);line-height:1.35;margin:0 0 22px;text-transform:uppercase}
.btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:2px;
  font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;transition:.35s var(--ease)
}
.btn-outline{border:1px solid rgba(255,255,255,.78);color:#fff}
.btn-outline:hover{background:#fff;color:var(--red);transform:translateY(-2px)}
.btn-dark{background:var(--ink);color:#fff;margin-top:24px}
.btn-dark:hover{background:var(--red);transform:translateY(-2px)}
.hero-badge{
  position:absolute;right:-18px;bottom:160px;z-index:6;display:flex;gap:12px;align-items:center;
  padding:10px 18px;background:var(--cream);color:var(--red-dark);transform:rotate(-90deg) translateX(100%);transform-origin:right bottom;
  font-size:9px;font-weight:700;letter-spacing:.14em
}

/* generic reveal */
.reveal{opacity:0;transform:translateY(38px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}

/* social proof */
.section-red{
  background:
    radial-gradient(circle at 50% 0,rgba(255,105,50,.48),transparent 35%),
    linear-gradient(180deg,#b71d17,#8d130f);
  color:#fff;padding:110px 0 70px;overflow:hidden;position:relative
}
.section-head{width:min(1180px,calc(100% - 48px));margin:0 auto 58px}
.section-head h2,.portfolio-title h2{
  margin:0;font-family:"Anton";font-weight:400;text-transform:uppercase;font-size:clamp(50px,7vw,104px);line-height:1.03;letter-spacing:-.025em
}
.section-head h2 em,.portfolio-title h2 em{font-style:normal;color:var(--cream)}
.section-head.dark{color:var(--ink)}
.section-head.dark h2 em{color:var(--red)}
.phone-wall{
  width:min(1440px,110vw);margin-left:50%;transform:translateX(-50%);
  display:flex;align-items:end;justify-content:center;gap:10px;padding:25px 0 0
}
.phone-card{
  width:19%;border-radius:22px 22px 8px 8px;overflow:hidden;background:#f8f3ea;padding:6px;
  box-shadow:0 24px 55px rgba(49,0,0,.34);transition:transform .5s var(--ease),filter .5s var(--ease)
}
.phone-card img{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:17px 17px 5px 5px}
.phone-main{width:22%;transform:translateY(-26px)}
.phone-card:hover{transform:translateY(-18px) rotate(0deg)!important;z-index:5}
.phone-left{transform:rotate(-7deg) translateY(28px)}
.phone-mid-left{transform:rotate(-3deg)}
.phone-mid-right{transform:rotate(3deg)}
.phone-right{transform:rotate(7deg) translateY(28px)}
.phone-main.is-visible{transform:translateY(-26px)}
.phone-left.is-visible{transform:rotate(-7deg) translateY(28px)}
.phone-mid-left.is-visible{transform:rotate(-3deg)}
.phone-mid-right.is-visible{transform:rotate(3deg)}
.phone-right.is-visible{transform:rotate(7deg) translateY(28px)}
.ticker{margin-top:70px;overflow:hidden;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);padding:12px 0}
.ticker div{white-space:nowrap;font-family:"Oswald";font-size:13px;letter-spacing:.15em;animation:ticker 28s linear infinite}
@keyframes ticker{to{transform:translateX(-50%)}}

/* services */
.services-section{padding:120px 0 130px;background:var(--paper)}
.services-grid{
  width:min(var(--max),calc(100% - 48px));margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:16px
}
.service-card{background:var(--red-dark);color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 18px 50px rgba(69,25,18,.12)}
.service-img{aspect-ratio:1/1;overflow:hidden;background:var(--cream)}
.service-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.service-card:hover .service-img img{transform:scale(1.045)}
.service-body{padding:22px 22px 24px;position:relative}
.service-number{font-family:"Oswald";font-size:11px;color:#ffb098}
.service-body h3{font-size:22px;margin:7px 0 10px}
.service-body p{font-size:13px;line-height:1.55;color:#f5d9d3;margin:0 0 20px}
.service-body a{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.24);padding-top:15px;text-transform:uppercase;font-size:10px;letter-spacing:.14em}

/* about */
.about{
  min-height:780px;padding:110px max(6vw,24px);display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center;
  background:#fbf8f2;position:relative;overflow:hidden
}
.about::before{
  content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(212,42,29,.23);border-radius:50%;left:-180px;bottom:80px
}
.about-visual{position:relative;min-height:610px}
.about-visual img{position:absolute;left:0;bottom:0;width:min(620px,100%);filter:drop-shadow(0 20px 40px rgba(71,34,26,.12))}
.portrait-halo{position:absolute;width:72%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#ffd8b5,transparent 66%);left:10%;bottom:8%;filter:blur(8px)}
.about-card{
  background:
    radial-gradient(circle at 80% 10%,rgba(255,112,42,.32),transparent 36%),
    linear-gradient(145deg,#e1391d,#b71512 65%,#77100e);
  color:#fff;padding:clamp(34px,5vw,70px);border-radius:12px;box-shadow:0 28px 70px rgba(109,21,16,.2)
}
.eyebrow.light{color:#ffd7c9}
.about-card h2{font-family:"Anton";font-size:clamp(62px,7vw,110px);line-height:1.02;margin:0 0 48px;text-transform:uppercase;color:var(--cream)}
.about-points{display:grid;grid-template-columns:1fr 1fr;gap:36px 42px}
.about-points article{border-top:1px solid rgba(255,255,255,.32);padding-top:14px}
.about-points span{font-family:"Oswald";color:#ff9a77;font-size:13px}
.about-points h3{font-family:"Oswald";text-transform:uppercase;font-size:19px;margin:5px 0 8px}
.about-points p{font-size:12px;line-height:1.5;margin:0;color:#f8d8d1}

.about-points article{
  position:relative;
  overflow:hidden;
  transition:
    transform .45s var(--ease),
    border-color .45s var(--ease),
    background .45s var(--ease);
  padding:16px 14px 14px;
  margin:-2px -14px 0;
  border-radius:8px;
}
.about-points article::before{
  content:"";
  position:absolute;
  top:-30%;
  left:-55%;
  width:35%;
  height:170%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);
  transform:skewX(-18deg);
  opacity:0;
}
.about-points article:hover{
  transform:translateY(-4px);
  background:rgba(255,255,255,.08);
  border-top-color:rgba(255,255,255,.62);
}
.about-points article:hover::before{
  opacity:1;
  animation:aboutShine .85s var(--ease);
}
.about-points article:hover h3{color:#ffe0b8}
.about-points article:hover span{color:#fff}
.about-points article:hover p{color:#fff}
@keyframes aboutShine{
  from{left:-55%}
  to{left:130%}
}

/* preview */
.portfolio-preview{padding:130px max(5vw,24px);display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:center;background:var(--cream)}
.portfolio-title{position:sticky;top:80px}
.portfolio-title h2{font-size:clamp(58px,7vw,112px)}
.project-collage{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.project-shot{margin:0;overflow:hidden;border-radius:4px;background:#fff}
.project-shot img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.project-shot:hover img{transform:scale(1.04)}
.project-a{grid-row:span 2}
.project-a img{aspect-ratio:1/2;object-fit:cover}
.project-b img,.project-c img,.project-d img{aspect-ratio:1/1}

/* contact */
.contact{
  min-height:760px;background:#fbfaf7;position:relative;overflow:hidden;display:flex;align-items:center;padding:90px 7vw 90px 48vw
}
.contact-phone{
  position:absolute;left:-2vw;top:-12%;height:125%;width:auto;object-fit:contain;transform:rotate(-8deg);
  filter:drop-shadow(0 25px 40px rgba(91,58,24,.22));animation:phoneFloat 5s ease-in-out infinite
}
@keyframes phoneFloat{50%{transform:rotate(-6deg) translateY(-10px)}}
.contact-copy{position:relative;z-index:2;max-width:650px}
.contact-copy h2{
  font-family:"Anton";text-transform:uppercase;font-size:clamp(48px,5.8vw,88px);line-height:1.04;margin:0 0 26px;color:var(--red-dark);letter-spacing:-.018em
}
.contact-copy h2 em{font-style:normal;color:var(--orange)}
.contact-copy>p{font-size:18px;max-width:540px;line-height:1.5}
.contact-links{display:flex;flex-direction:column;margin-top:34px;border-top:1px solid var(--line)}
.contact-links a{padding:15px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
.contact-links a:hover{color:var(--red)}

footer{
  min-height:88px;background:var(--red-dark);color:#fff;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;
  font-size:11px;text-transform:uppercase;letter-spacing:.12em
}

/* Portfolio page */
.portfolio-page{background:#f5eee4}
.portfolio-page .site-header{position:fixed;background:linear-gradient(to bottom,rgba(121,16,13,.9),transparent);backdrop-filter:blur(4px)}
.portfolio-hero{
  min-height:680px;padding:180px 6vw 90px;background:
    radial-gradient(circle at 78% 20%,rgba(255,110,40,.45),transparent 35%),
    linear-gradient(145deg,#e23b1c,#a91613 70%,#6f0d0b);color:#fff
}
.portfolio-hero h1{font-family:"Anton";font-size:clamp(68px,10vw,170px);line-height:.82;text-transform:uppercase;margin:0 0 28px;max-width:1200px}
.portfolio-hero h1 em{font-style:normal;color:var(--cream)}
.portfolio-hero>p:last-child{max-width:650px;font-size:16px;line-height:1.55;color:#f7d9d1}
.filter-row{
  position:sticky;top:0;z-index:20;padding:18px 6vw;display:flex;gap:10px;flex-wrap:wrap;background:rgba(245,238,228,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)
}
.filter-btn{
  border:1px solid var(--line);background:transparent;border-radius:100px;padding:10px 17px;text-transform:uppercase;font-size:10px;letter-spacing:.12em;cursor:pointer
}
.filter-btn.active,.filter-btn:hover{background:var(--ink);color:#fff}
.portfolio-grid{
  padding:35px 3vw 120px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:16px
}
.portfolio-item{position:relative;overflow:hidden;background:#ddd;cursor:zoom-in;min-height:340px;transition:opacity .35s,transform .35s}
.portfolio-item.tall{grid-row:span 2;min-height:700px}
.portfolio-item.hidden{display:none}
.portfolio-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);position:absolute;inset:0}
.portfolio-item:hover img{transform:scale(1.035)}
.item-meta{
  position:absolute;inset:auto 0 0;padding:70px 20px 20px;color:#fff;background:linear-gradient(transparent,rgba(35,10,8,.82));
  transform:translateY(8px);transition:.4s var(--ease)
}
.portfolio-item:hover .item-meta{transform:none}
.item-meta span{font-size:10px;text-transform:uppercase;letter-spacing:.14em}
.item-meta h2{margin:5px 0 0;font-family:"Oswald";font-size:24px;text-transform:uppercase}
.lightbox{
  position:fixed;inset:0;z-index:100;background:rgba(23,12,10,.94);display:none;align-items:center;justify-content:center;padding:40px
}
.lightbox.open{display:flex}
.lightbox img{max-height:86vh;max-width:86vw;object-fit:contain;box-shadow:0 25px 80px rgba(0,0,0,.5)}
.lightbox-close{position:absolute;right:28px;top:20px;border:0;background:none;color:#fff;font-size:42px;cursor:pointer}
.lightbox-caption{position:absolute;left:30px;bottom:22px;color:#fff;font-family:"Oswald";text-transform:uppercase}

@media (max-width:1050px){
 .hero-person-wrap{left:50%;right:auto;width:min(820px,70vw);height:82%}
  .hero-copy h1{right:34px;bottom:62px;width:48vw;font-size:clamp(34px,4.2vw,56px)}
  .hero-copy{width:38vw}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .about{grid-template-columns:1fr}
  .about-visual{min-height:560px}
  .portfolio-preview{grid-template-columns:1fr}
  .portfolio-title{position:relative;top:auto}
  .portfolio-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:760px){
  .desktop-nav{display:none}.menu-toggle{display:flex}
  .hero{min-height:820px;height:auto;padding-bottom:0}
  .hero-welcome{font-size:43vw;top:16%;left:50%}
 .hero-person-wrap{position:absolute;height:63%;left:50%;right:auto;width:135vw;bottom:0}
  .hero-copy{left:22px;bottom:34px;width:calc(100% - 44px)}
  .hero-copy h1{position:absolute;right:0;left:auto;bottom:0;width:min(84vw,520px);font-size:38px;line-height:1.05;margin:0;text-align:right}
  .hero-intro{max-width:240px;font-size:clamp(16px,4.2vw,20px)}
  .hero-badge{display:none}
  .section-red{padding-top:80px}
  .phone-wall{width:170vw}
  .phone-card{width:20%}.phone-main{width:22%}
  .services-section{padding:90px 0}
  .services-grid{grid-template-columns:1fr;width:calc(100% - 32px)}
  .about{padding:80px 18px;gap:20px}
  .about-visual{min-height:430px}
  .about-card{padding:34px 24px}
  .about-points{grid-template-columns:1fr;gap:26px}
  .portfolio-preview{padding:90px 18px}
  .project-collage{gap:10px}
  .contact{min-height:840px;padding:410px 22px 70px}
  .contact-phone{height:590px;top:-50px;left:-120px}
  .contact-copy h2{font-size:48px;line-height:1.06}
  footer{gap:20px;flex-direction:column;justify-content:center;text-align:center}
  .portfolio-hero{min-height:560px;padding:150px 22px 70px}
  .portfolio-grid{grid-template-columns:repeat(2,1fr);padding:20px 14px 80px;gap:10px}
  .portfolio-item,.portfolio-item.tall{min-height:430px;grid-row:span 1}
}
@media (max-width:460px){
  .phone-wall{width:205vw}
  .portfolio-grid{grid-template-columns:1fr}
  .portfolio-item,.portfolio-item.tall{min-height:520px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal,.hero-bg,.hero-welcome,.hero-person-wrap,.hero-copy{opacity:1!important;transform:none!important}
}

/* Animated red surfaces — pronounced moving red gradients. */
@keyframes redAmbient{
  0%{background-position:0% 0%,100% 15%,10% 100%,50% 50%;}
  25%{background-position:55% 15%,70% 80%,35% 45%,50% 50%;}
  50%{background-position:100% 60%,10% 100%,80% 10%,50% 50%;}
  75%{background-position:40% 100%,0% 25%,100% 65%,50% 50%;}
  100%{background-position:0% 0%,100% 15%,10% 100%,50% 50%;}
}
.hero,.section-red,.about-card,.portfolio-hero,.service-card,.mobile-menu,footer{
  background-image:
    radial-gradient(circle at center,rgba(255,82,42,.72) 0%,rgba(255,82,42,0) 43%),
    radial-gradient(circle at center,rgba(111,5,11,.88) 0%,rgba(111,5,11,0) 48%),
    radial-gradient(circle at center,rgba(239,35,25,.60) 0%,rgba(239,35,25,0) 46%),
    linear-gradient(135deg,#f04424 0%,#d2251c 33%,#a71114 67%,#71090d 100%);
  background-size:95% 130%,115% 145%,105% 130%,180% 180%;
  animation:redAmbient 11s ease-in-out infinite;
}
.hero{
  background-image:
    radial-gradient(circle at center,rgba(255,106,47,.78) 0%,rgba(255,106,47,0) 42%),
    radial-gradient(circle at center,rgba(104,3,9,.88) 0%,rgba(104,3,9,0) 50%),
    radial-gradient(circle at center,rgba(229,28,22,.68) 0%,rgba(229,28,22,0) 45%),
    linear-gradient(135deg,#f14a27 0%,#d6261d 35%,#a91315 68%,#70090d 100%);
}
.hero-orb-a{animation:orbDriftA 10s ease-in-out infinite alternate}
.hero-orb-b{animation:orbDriftB 13s ease-in-out infinite alternate}
@keyframes orbDriftA{to{transform:translate(18vw,-12%) scale(1.28)}}
@keyframes orbDriftB{to{transform:translate(-16vw,18%) scale(1.08)}}
@media(prefers-reduced-motion:reduce){
  .hero,.section-red,.about-card,.portfolio-hero,.service-card,.mobile-menu,footer,.hero-orb{animation:none!important}
}

.hero-intro strong{font-weight:800}

/* Five equally sized, horizontally aligned Instagram feeds */
.phone-wall {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: center;
  gap: 16px;
  width: 100%;
}
.phone-wall .phone-card,
.phone-wall .phone-left,
.phone-wall .phone-mid-left,
.phone-wall .phone-main,
.phone-wall .phone-mid-right,
.phone-wall .phone-right {
  position: relative;
  inset: auto;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  margin: 0;
  transform: none !important;
  scale: 1 !important;
}
.phone-wall .phone-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 768px) {
  .phone-wall { gap: 8px; }
}

/* Smaller, centered Instagram feed gallery */
.phone-wall {
  width: min(100%, 880px);
  max-width: 880px;
  margin-inline: auto;
  gap: 14px;
}
@media (max-width: 768px) {
  .phone-wall { width: 100%; gap: 6px; }
}

/* Balanced Instagram feed size: larger and perfectly centered */
.phone-wall {
  width: min(94vw, 1180px);
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
  gap: 18px;
}

@media (max-width: 1100px) {
  .phone-wall {
    width: min(94vw, 1000px);
    gap: 14px;
  }
}

@media (max-width: 768px) {
  .phone-wall {
    width: 96vw;
    gap: 8px;
  }
}

/* Correct the original 50% offset and center the complete gallery */
.social-proof .phone-wall {
  width: min(1180px, 94%);
  max-width: 1180px;
  margin: 0 auto;
  transform: none !important;
  translate: none !important;
  left: auto;
  right: auto;
  padding: 25px 0 0;
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .social-proof .phone-wall {
    width: 96%;
    margin: 0 auto;
    transform: none !important;
  }
}


/* =========================================================
   CONTINUOUS ANIMATED RED BACKGROUND — HERO + SOCIAL PROOF
   One shared canvas prevents any visible seam between sections.
   ========================================================= */
.continuous-red-bg {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-color: #a91216;
  background-image:
    radial-gradient(circle at 18% 18%, rgba(255, 91, 42, .92) 0%, rgba(255, 91, 42, 0) 33%),
    radial-gradient(circle at 82% 35%, rgba(116, 5, 13, .95) 0%, rgba(116, 5, 13, 0) 39%),
    radial-gradient(circle at 38% 74%, rgba(239, 35, 25, .80) 0%, rgba(239, 35, 25, 0) 36%),
    radial-gradient(circle at 88% 88%, rgba(255, 74, 29, .70) 0%, rgba(255, 74, 29, 0) 34%),
    linear-gradient(135deg, #f04424 0%, #d2251c 30%, #a71114 62%, #71090d 100%);
  background-size: 115% 90%, 125% 105%, 120% 95%, 125% 95%, 180% 180%;
  background-position: 0% 0%, 100% 15%, 10% 75%, 90% 100%, 50% 50%;
  animation: continuousRedAmbient 12s ease-in-out infinite alternate;
}

/* The two sections now reveal the exact same animated canvas behind them. */
.continuous-red-bg > .hero,
.continuous-red-bg > .social-proof,
.continuous-red-bg > .section-red {
  background: transparent !important;
  background-image: none !important;
  animation: none !important;
}

/* Remove Hero-only overlays/orbs that previously made the join perceptible. */
.continuous-red-bg .hero::after,
.continuous-red-bg .hero-bg {
  display: none !important;
}

@keyframes continuousRedAmbient {
  0% {
    background-position: 0% 0%, 100% 12%, 8% 68%, 92% 100%, 35% 35%;
    background-size: 115% 90%, 125% 105%, 120% 95%, 125% 95%, 180% 180%;
  }
  35% {
    background-position: 18% 14%, 78% 28%, 28% 82%, 72% 85%, 58% 45%;
    background-size: 130% 100%, 115% 120%, 132% 105%, 115% 108%, 205% 205%;
  }
  70% {
    background-position: 34% 28%, 64% 8%, 6% 92%, 96% 70%, 42% 62%;
    background-size: 120% 112%, 138% 98%, 112% 118%, 132% 100%, 190% 190%;
  }
  100% {
    background-position: 12% 42%, 88% 34%, 34% 58%, 68% 94%, 62% 38%;
    background-size: 135% 104%, 118% 114%, 128% 100%, 116% 116%, 215% 215%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .continuous-red-bg {
    animation: none;
  }
}


/* ===== FINAL: ONE PHYSICAL BACKGROUND LAYER FOR BOTH SECTIONS ===== */
.continuous-red-bg {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background: #a71114 !important;
  animation: none !important;
}

/* This is the ONE and ONLY animated red background element. */
.continuous-red-bg::before {
  content: "";
  position: absolute;
  inset: -12%;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 12% 18%, rgba(255, 88, 38, .95) 0%, rgba(255, 88, 38, 0) 34%),
    radial-gradient(ellipse at 82% 28%, rgba(105, 3, 12, .96) 0%, rgba(105, 3, 12, 0) 40%),
    radial-gradient(ellipse at 32% 68%, rgba(235, 29, 23, .85) 0%, rgba(235, 29, 23, 0) 38%),
    radial-gradient(ellipse at 88% 86%, rgba(255, 72, 30, .78) 0%, rgba(255, 72, 30, 0) 35%),
    linear-gradient(145deg, #f14a27 0%, #d5261d 30%, #a71114 62%, #71090d 100%);
  background-size: 120% 120%, 125% 125%, 120% 120%, 120% 120%, 190% 190%;
  background-position: 5% 5%, 95% 20%, 20% 70%, 90% 90%, 45% 45%;
  animation: oneRedCanvasMove 14s ease-in-out infinite alternate;
  transform: translate3d(0,0,0);
}

/* Absolutely no individual red background, overlay, filter, border or seam on either block. */
.continuous-red-bg > .hero,
.continuous-red-bg > .social-proof,
.continuous-red-bg > .section-red {
  position: relative;
  z-index: 0;
  background: none !important;
  background-color: transparent !important;
  background-image: none !important;
  background-blend-mode: normal !important;
  box-shadow: none !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  filter: none !important;
  animation: none !important;
}

/* Disable every decorative background layer specific to Hero / social-proof. */
.continuous-red-bg > .hero::before,
.continuous-red-bg > .hero::after,
.continuous-red-bg > .social-proof::before,
.continuous-red-bg > .social-proof::after,
.continuous-red-bg > .section-red::before,
.continuous-red-bg > .section-red::after,
.continuous-red-bg .hero-bg,
.continuous-red-bg .hero-orb {
  display: none !important;
  content: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* No gap can appear between the two sections. */
.continuous-red-bg > .hero {
  margin-bottom: 0 !important;
}
.continuous-red-bg > .social-proof {
  margin-top: 0 !important;
}

@keyframes oneRedCanvasMove {
  0% {
    transform: translate3d(-2%, -1%, 0) scale(1.04);
    background-position: 5% 5%, 95% 20%, 20% 70%, 90% 90%, 45% 45%;
  }
  50% {
    transform: translate3d(2%, 1.5%, 0) scale(1.08);
    background-position: 22% 18%, 76% 34%, 38% 82%, 72% 72%, 60% 55%;
  }
  100% {
    transform: translate3d(-1%, 2%, 0) scale(1.05);
    background-position: 12% 34%, 90% 12%, 12% 88%, 94% 66%, 38% 62%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .continuous-red-bg::before {
    animation: none !important;
  }
}

/* Editorial typography inspired by the supplied reference */
.hero-intro {
  max-width: 530px;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(24px, 2.45vw, 36px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.035em;
  text-transform: none;
  text-wrap: balance;
}
.hero-intro strong {
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
  font-size: 1.24em;
  font-weight: 600;
  line-height: .95;
  letter-spacing: -.045em;
  text-transform: none;
}
@media (max-width: 768px) {
  .hero-intro {
    max-width: 290px;
    font-size: clamp(20px, 5vw, 27px);
    line-height: 1.16;
  }
  .hero-intro strong { font-size: 1.18em; }
}

/* ============================================================
   EDITORIAL TYPOGRAPHY — SECTION HEADINGS
   Mirrors the Hero treatment: modern sans + elegant italic serif
   ============================================================ */
.section-head h2,
.portfolio-title h2 {
  font-family: "DM Sans", Arial, sans-serif;
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: 1.02;
}

.section-head h2 em,
.portfolio-title h2 em {
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
  font-weight: 600;
  letter-spacing: -.055em;
  line-height: .92;
  text-transform: none;
}

/* Social proof title */
.social-proof .section-head h2 {
  font-size: clamp(40px, 5vw, 72px);
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  text-wrap: balance;
}

.social-proof .section-head h2 em {
  font-size: 1.12em;
}

/* Services title */
.services-section .section-head h2 {
  font-size: clamp(46px, 5.8vw, 84px);
  text-wrap: balance;
}

.services-section .section-head h2 em {
  font-size: 1.12em;
}

/* Portfolio preview title */
.portfolio-title h2 {
  font-size: clamp(48px, 6vw, 88px);
  text-wrap: balance;
}

.portfolio-title h2 em {
  font-size: 1.12em;
}

@media (max-width: 768px) {
  .social-proof .section-head h2 {
    font-size: clamp(34px, 9vw, 48px);
  }

  .services-section .section-head h2,
  .portfolio-title h2 {
    font-size: clamp(38px, 10vw, 54px);
  }
}

/* Final heading alignment and color adjustments */
.portfolio-title h2,
.portfolio-title h2 em {
  color: #1b1715 !important;
}
.social-proof .section-head {
  text-align: left;
}
.social-proof .section-head .eyebrow,
.social-proof .section-head h2 {
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

/* About: centered, full-width content without portrait */
.about {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: auto;
  padding: clamp(60px, 7vw, 110px) clamp(18px, 4vw, 60px);
}
.about-card {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  text-align: center;
}
.about-card > .eyebrow,
.about-card > h2 { text-align: center; }
.about-points {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px 48px;
}
.about-points article {
  text-align: center;
  margin: 0;
  padding: 20px 14px;
}
.about-points p {
  max-width: 390px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .about { padding: 60px 18px; }
  .about-card { padding: 34px 24px; }
  .about-points { grid-template-columns: 1fr; gap: 24px; }
}

/* One continuous cream canvas for Services + About */
.continuous-cream-bg {
  background: #f8f4ed;
  position: relative;
}
.continuous-cream-bg > .services-section,
.continuous-cream-bg > .about {
  background: transparent !important;
  background-image: none !important;
  margin-top: 0;
  margin-bottom: 0;
}
.continuous-cream-bg > .about::before {
  display: none !important;
}

.portfolio-empty { grid-column:1 / -1; text-align:center; padding:70px 20px; color:var(--muted); }
.portfolio-empty[hidden] { display:none !important; }

/* Portfolio headline: same typography and scale as the index Hero */
.portfolio-hero h1 {
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(44px, 4.6vw, 78px);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -.05em;
  text-transform: uppercase;
  max-width: 1200px;
  margin: 0 0 28px;
}
.portfolio-hero h1 em {
  font-family: "DM Sans", Arial, sans-serif;
  font-style: normal;
  font-weight: 300;
  color: inherit;
  letter-spacing: -.05em;
}
@media (max-width: 768px) {
  .portfolio-hero h1 { font-size: clamp(34px, 4.2vw, 56px); }
}

/* ===== PORTFOLIO PROJECT SYSTEM ===== */
.portfolio-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 28px !important;
}
.portfolio-item.project-card {
  position: relative;
  aspect-ratio: 4 / 3;
  min-height: 0 !important;
  overflow: hidden;
  cursor: pointer;
}
.portfolio-item.project-card > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.project-modal {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: none;
  overflow-y: auto;
  background: rgba(18,14,12,.88);
  padding: clamp(18px, 4vw, 54px);
}
.project-modal.open { display: block; }
.project-modal-panel {
  position: relative;
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: clamp(28px, 4vw, 58px);
  background: #f8f4ed;
  border-radius: 12px;
}
.project-modal-close {
  position: sticky;
  top: 0;
  float: right;
  z-index: 2;
  border: 0;
  background: #1b1715;
  color: #fff;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.project-modal-head {
  clear: both;
  padding: 8px 0 34px;
}
.project-modal-head p {
  margin: 0 0 8px;
  font-family: "Oswald", sans-serif;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 13px;
  color: var(--red);
}
.project-modal-head h2 {
  margin: 0;
  font-family: "DM Sans", sans-serif;
  font-size: clamp(38px, 5vw, 72px);
  line-height: 1;
  letter-spacing: -.05em;
  color: var(--ink);
}
.project-modal-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}
.project-modal-gallery img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  background: #eee8df;
}
@media (max-width: 850px) {
  .portfolio-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Portfolio previews: 70% of previous desktop size, centered */
.portfolio-grid {
  width: min(924px, calc(100% - 48px)) !important;
  max-width: 924px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
}
@media (max-width: 850px) {
  .portfolio-grid {
    width: min(520px, calc(100% - 36px)) !important;
    grid-template-columns: 1fr !important;
  }
}

/* Balanced portfolio previews: restore a comfortable, readable size */
.portfolio-grid {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
}
@media (max-width: 850px) {
  .portfolio-grid {
    width: min(520px, calc(100% - 36px)) !important;
    grid-template-columns: 1fr !important;
  }
}

/* Final correction: large, readable previews across the available width */
.portfolio-grid {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1600px !important;
  margin: 0 auto !important;
  padding: 35px 3vw 120px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 28px !important;
}
@media (max-width: 850px) {
  .portfolio-grid {
    max-width: 650px !important;
    padding: 24px 18px 80px !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

/* Smooth staircase reveal for the five Instagram feeds */
.phone-wall .phone-card {
  opacity: 0;
  transform: translate3d(0, 42px, 0) scale(.97) !important;
  transition: opacity .85s ease, transform 1s cubic-bezier(.16,1,.3,1) !important;
  transition-delay: 0ms !important;
}
.phone-wall.feeds-visible .phone-card {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1) !important;
}
.phone-wall.feeds-visible .phone-card:nth-child(1) { transition-delay: 0ms !important; }
.phone-wall.feeds-visible .phone-card:nth-child(2) { transition-delay: 140ms !important; }
.phone-wall.feeds-visible .phone-card:nth-child(3) { transition-delay: 280ms !important; }
.phone-wall.feeds-visible .phone-card:nth-child(4) { transition-delay: 420ms !important; }
.phone-wall.feeds-visible .phone-card:nth-child(5) { transition-delay: 560ms !important; }
@media (prefers-reduced-motion: reduce) {
  .phone-wall .phone-card {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Contact: black headline and fully visible floating telephone */
.contact-copy h2,
.contact-copy h2 span,
.contact-copy h2 em {
  color: #1b1715 !important;
}
.contact {
  min-height: 760px;
  padding-left: 48vw;
}
.contact-phone {
  left: 2vw;
  top: 50%;
  height: min(620px, 78%);
  max-width: 43vw;
  width: auto;
  object-fit: contain;
  transform: translateY(-50%) rotate(-8deg);
  animation: phoneFloatVisible 5s ease-in-out infinite;
}
@keyframes phoneFloatVisible {
  0%, 100% { transform: translateY(-50%) rotate(-8deg); }
  50% { transform: translateY(calc(-50% - 14px)) rotate(-5deg); }
}
@media (max-width: 760px) {
  .contact {
    min-height: auto;
    padding: 360px 22px 70px;
  }
  .contact-phone {
    top: 20px;
    left: 50%;
    height: 310px;
    max-width: 85%;
    transform: translateX(-50%) rotate(-8deg);
    animation: phoneFloatMobile 5s ease-in-out infinite;
  }
  @keyframes phoneFloatMobile {
    0%, 100% { transform: translateX(-50%) rotate(-8deg); }
    50% { transform: translate(-50%, -12px) rotate(-5deg); }
  }
}
@media (prefers-reduced-motion: reduce) {
  .contact-phone { animation: none !important; }
}

/* Larger telephone, preserving its floating animation */
.contact-phone {
  height: min(790px, 98%) !important;
  max-width: 48vw !important;
  left: 1vw !important;
  top: 50% !important;
}
@media (max-width: 760px) {
  .contact { padding-top: 440px !important; }
  .contact-phone {
    height: 390px !important;
    max-width: 92% !important;
    top: 20px !important;
    left: 50% !important;
  }
}


/* =========================================================
   FINAL MOBILE RESPONSIVE PASS — INDEX
   Keeps desktop unchanged and rebuilds the mobile composition.
   ========================================================= */
@media (max-width: 760px) {

  html, body {
    width: 100%;
    overflow-x: hidden;
  }

  /* Header */
  .site-header {
    height: 76px;
    padding: 0 22px;
  }

  .brand {
    font-size: 27px;
  }

  .menu-toggle {
    width: 40px;
    height: 40px;
    padding: 7px 2px;
  }

  /* HERO — real mobile layout */
  .hero {
    height: 100svh !important;
    min-height: 700px !important;
    max-height: 860px;
    padding: 0 !important;
    overflow: hidden;
  }

  .hero-copy {
    position: absolute !important;
    top: 118px !important;
    left: 22px !important;
    right: 22px !important;
    bottom: auto !important;
    width: auto !important;
    max-width: none !important;
    transform: none !important;
    opacity: 1 !important;
    z-index: 8;
  }

  .hero-copy h1 {
    position: static !important;
    width: 100% !important;
    margin: 0 0 18px !important;
    font-size: clamp(34px, 9.2vw, 46px) !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
    text-align: left !important;
  }

  .hero-intro {
    max-width: 340px !important;
    margin: 0 0 22px !important;
    font-size: clamp(19px, 5vw, 23px) !important;
    line-height: 1.12 !important;
    letter-spacing: -.035em !important;
  }

  .hero-intro strong {
    font-size: 1.16em !important;
  }

  .hero-copy .btn {
    min-height: 46px;
    padding: 0 18px;
    font-size: 11px;
    white-space: nowrap;
  }

  .hero-person-wrap {
    position: absolute !important;
    left: auto !important;
    right: -9vw !important;
    bottom: -1px !important;
    width: 92vw !important;
    height: 46% !important;
    max-width: none !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: flex-end !important;
    transform: none;
    z-index: 3;
  }

  .hero-person {
    height: 100% !important;
    width: auto !important;
    max-width: none !important;
    object-fit: contain !important;
    object-position: right bottom !important;
  }

  .hero-badge {
    display: none !important;
  }

  /* Social feeds */
  .social-proof {
    padding: 72px 0 78px !important;
    overflow: hidden;
  }

  .social-proof .section-head {
    width: calc(100% - 44px) !important;
    margin: 0 22px 34px !important;
  }

  .social-proof .section-head h2 {
    max-width: 100% !important;
    font-size: clamp(37px, 10.5vw, 48px) !important;
    line-height: 1.02 !important;
  }

  .social-proof .phone-wall {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    gap: 14px !important;
    padding: 8px 22px 18px !important;
    margin: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    justify-content: flex-start !important;
  }

  .social-proof .phone-wall::-webkit-scrollbar {
    display: none;
  }

  .phone-wall .phone-card,
  .phone-wall .phone-left,
  .phone-wall .phone-mid-left,
  .phone-wall .phone-main,
  .phone-wall .phone-mid-right,
  .phone-wall .phone-right {
    flex: 0 0 64vw !important;
    width: 64vw !important;
    max-width: 270px !important;
    aspect-ratio: 9 / 16 !important;
    scroll-snap-align: center;
  }

  /* Services */
  .services-section {
    padding: 72px 0 62px !important;
  }

  .services-section .section-head {
    width: calc(100% - 36px) !important;
    margin: 0 auto 36px !important;
  }

  .services-section .section-head h2 {
    font-size: clamp(38px, 10vw, 50px) !important;
    line-height: 1 !important;
  }

  .services-grid {
    width: calc(100% - 28px) !important;
    margin: 0 auto !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .service-card {
    min-height: 0 !important;
  }

  .service-img {
    min-height: 250px;
  }

  /* About */
  .about {
    padding: 32px 14px 72px !important;
  }

  .about-card {
    width: 100% !important;
    padding: 38px 20px !important;
  }

  .about-card h2 {
    font-size: clamp(56px, 16vw, 76px) !important;
    margin-bottom: 34px !important;
  }

  .about-points {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .about-points article {
    padding: 18px 12px !important;
  }

  /* Contact */
  .contact {
    min-height: 790px !important;
    padding: 380px 22px 64px !important;
    display: block !important;
    overflow: hidden;
  }

  .contact-phone {
    top: 26px !important;
    left: 50% !important;
    right: auto !important;
    width: auto !important;
    height: 340px !important;
    max-width: 96vw !important;
  }

  .contact-copy {
    width: 100% !important;
    max-width: none !important;
  }

  .contact-copy h2 {
    font-size: clamp(46px, 13vw, 62px) !important;
    line-height: 1 !important;
  }

  .contact-links {
    align-items: flex-start;
  }

  /* Footer */
  footer {
    padding: 32px 22px !important;
    gap: 16px !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
  }
}

/* Extra-small phones */
@media (max-width: 390px) {
  .hero-copy {
    top: 104px !important;
  }

  .hero-copy h1 {
    font-size: 32px !important;
  }

  .hero-intro {
    font-size: 18px !important;
    max-width: 300px !important;
  }

  .hero-person-wrap {
    width: 98vw !important;
    height: 43% !important;
    right: -13vw !important;
  }

  .phone-wall .phone-card,
  .phone-wall .phone-left,
  .phone-wall .phone-mid-left,
  .phone-wall .phone-main,
  .phone-wall .phone-mid-right,
  .phone-wall .phone-right {
    flex-basis: 70vw !important;
    width: 70vw !important;
  }
}


/* =========================================================
   MOBILE HERO — FINAL COMPOSITION
   Top: intro + CTA
   Middle: Doris centered
   Bottom-right: Graphiste & Community Manager
   ========================================================= */
@media (max-width: 760px) {
  .hero {
    position: relative !important;
    height: 100svh !important;
    min-height: 760px !important;
    max-height: 900px !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* Top content: intro + button only */
  .hero-copy {
    position: absolute !important;
    top: 112px !important;
    left: 22px !important;
    right: 22px !important;
    width: auto !important;
    max-width: none !important;
    z-index: 8 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  .hero-copy h1 {
    position: absolute !important;
    right: 18px !important;
    left: auto !important;
    top: calc(100svh - 205px) !important;
    width: min(72vw, 330px) !important;
    margin: 0 !important;
    font-size: clamp(31px, 8.7vw, 43px) !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
    text-align: right !important;
    z-index: 9 !important;
  }

  .hero-intro {
    order: 1 !important;
    max-width: 335px !important;
    margin: 0 0 22px !important;
    font-size: clamp(20px, 5.3vw, 24px) !important;
    line-height: 1.1 !important;
    text-align: left !important;
  }

  .hero-copy .btn {
    order: 2 !important;
    margin: 0 !important;
  }

  /* Center Doris visually */
  .hero-person-wrap {
    position: absolute !important;
    left: 50% !important;
    right: auto !important;
    top: 50% !important;
    bottom: auto !important;
    width: 88vw !important;
    height: 48vh !important;
    max-width: 430px !important;
    min-height: 340px !important;
    transform: translate(-50%, -36%) !important;
    display: flex !important;
    justify-content: center !important;
    align-items: flex-end !important;
    z-index: 4 !important;
  }

  .hero-person {
    display: block !important;
    height: 100% !important;
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: center bottom !important;
  }

  .hero-badge {
    display: none !important;
  }
}

/* Smaller phones */
@media (max-width: 390px) {
  .hero {
    min-height: 720px !important;
  }

  .hero-copy {
    top: 100px !important;
    left: 18px !important;
    right: 18px !important;
  }

  .hero-intro {
    max-width: 300px !important;
    font-size: 18.5px !important;
  }

  .hero-copy h1 {
    right: 14px !important;
    top: calc(100svh - 190px) !important;
    width: 76vw !important;
    font-size: 30px !important;
  }

  .hero-person-wrap {
    width: 94vw !important;
    height: 46vh !important;
    transform: translate(-50%, -34%) !important;
  }
}

/* Short mobile screens */
@media (max-width: 760px) and (max-height: 760px) {
  .hero-copy {
    top: 90px !important;
  }

  .hero-intro {
    font-size: 18px !important;
    margin-bottom: 16px !important;
  }

  .hero-copy .btn {
    min-height: 42px !important;
    padding: 0 16px !important;
  }

  .hero-person-wrap {
    height: 43vh !important;
    transform: translate(-50%, -31%) !important;
  }

  .hero-copy h1 {
    top: calc(100svh - 168px) !important;
    font-size: 29px !important;
  }
}


/* =========================================================
   MOBILE HERO — PORTRAIT FIRST, TEXT CENTERED BELOW
   ========================================================= */
@media (max-width: 760px) {
  .hero {
    position: relative !important;
    height: auto !important;
    min-height: 100svh !important;
    max-height: none !important;
    padding: 92px 18px 34px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    overflow: hidden !important;
  }

  .hero-person-wrap {
    position: relative !important;
    order: 1 !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: min(92vw, 430px) !important;
    height: auto !important;
    min-height: 0 !important;
    max-width: none !important;
    margin: 12px auto 10px !important;
    transform: none !important;
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    z-index: 4 !important;
  }

  .hero-person {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: center top !important;
  }

  .hero-copy {
    position: relative !important;
    order: 2 !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 430px !important;
    margin: 0 auto !important;
    transform: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    z-index: 8 !important;
  }

  .hero-copy h1 {
    position: static !important;
    order: 3 !important;
    width: 100% !important;
    margin: 18px 0 0 !important;
    font-size: clamp(31px, 8.8vw, 43px) !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
    text-align: center !important;
  }

  .hero-intro {
    order: 1 !important;
    max-width: 360px !important;
    margin: 0 auto 20px !important;
    font-size: clamp(20px, 5.3vw, 24px) !important;
    line-height: 1.12 !important;
    text-align: center !important;
  }

  .hero-copy .btn {
    order: 2 !important;
    margin: 0 auto !important;
  }

  .hero-badge {
    display: none !important;
  }
}

/* Small phones */
@media (max-width: 390px) {
  .hero {
    padding: 86px 14px 30px !important;
  }

  .hero-person-wrap {
    width: 96vw !important;
    margin-top: 8px !important;
  }

  .hero-intro {
    max-width: 320px !important;
    font-size: 18.5px !important;
  }

  .hero-copy h1 {
    font-size: 30px !important;
  }
}

/* Mobile portrait: centered within the viewport */
@media (max-width: 760px) {
  .hero-person-wrap {
    box-sizing: border-box !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: min(100%, 430px) !important;
    max-width: 430px !important;
    height: auto !important;
    margin: 12px auto 10px !important;
    padding: 0 !important;
    transform: none !important;
    translate: none !important;
    justify-content: center !important;
    align-items: center !important;
  }
  .hero-person {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    transform: none !important;
    translate: none !important;
    object-fit: contain !important;
    object-position: center center !important;
  }
}

/* Portfolio mobile: compact hero and a strict two-by-two filter grid */
@media (max-width: 760px) {
  .portfolio-hero {
    box-sizing: border-box;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    padding: 112px 22px 48px !important;
  }
  .portfolio-hero h1 {
    font-size: clamp(34px, 9vw, 46px) !important;
    line-height: 1.04 !important;
    margin: 0 0 22px !important;
  }
  .portfolio-hero > p:last-child {
    font-size: 15px !important;
    line-height: 1.5 !important;
    margin-bottom: 0 !important;
  }
  .filter-row {
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 24px 16px !important;
    margin: 0 !important;
  }
  .filter-row .filter-btn {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 54px;
    padding: 10px 8px !important;
    font-size: clamp(9px, 2.5vw, 11px) !important;
    line-height: 1.3 !important;
    letter-spacing: .035em !important;
    text-align: center;
    white-space: normal !important;
    overflow-wrap: normal;
    word-break: normal;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
@media (max-width: 360px) {
  .filter-row { gap: 8px !important; padding-inline: 12px !important; }
  .filter-row .filter-btn { font-size: 9px !important; padding-inline: 5px !important; }
}
