@font-face{
  font-family:"Magic";
  src:url("../assets/fonts/magic.otf") format("opentype"),
      url("../assets/fonts/magic.ttf") format("truetype");
  font-weight:400;font-style:normal;font-display:swap;
}
:root{
  --purple:#3A1772;
  --yellow:#F8C630;
  --beige:#F5EFE6;
  --beige-deep:#EDE5D6;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Manrope",system-ui,sans-serif;
  background:var(--beige);
  color:var(--purple);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

/* bubbles */
.bubbles{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bubble{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:float 22s ease-in-out infinite;will-change:transform}
.b1{width:520px;height:520px;left:-120px;top:-80px;background:radial-gradient(circle at 30% 30%,#F8C630 0%,#F8C63088 40%,transparent 70%);animation-duration:22s}
.b2{width:380px;height:380px;right:-80px;top:480px;background:radial-gradient(circle at 60% 40%,#F8C630 0%,#F8C63077 40%,transparent 70%);animation-duration:26s;animation-delay:-6s}
.b3{width:600px;height:600px;left:30%;top:1100px;background:radial-gradient(circle at 50% 50%,#FFD45A 0%,#F8C63066 35%,transparent 70%);animation-duration:30s;animation-delay:-12s}
.b4{width:340px;height:340px;right:8%;top:1900px;background:radial-gradient(circle at 40% 60%,#F8C630 0%,#F8C63099 40%,transparent 70%);animation-duration:24s;animation-delay:-3s}
.b5{width:460px;height:460px;left:-100px;top:2600px;background:radial-gradient(circle at 50% 50%,#FFD45A 0%,#F8C63077 40%,transparent 70%);animation-duration:28s;animation-delay:-9s}
.b6{width:280px;height:280px;right:20%;top:3300px;background:radial-gradient(circle at 50% 50%,#F8C630 0%,#F8C63088 40%,transparent 70%);animation-duration:20s;animation-delay:-15s}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(40px,-30px) scale(1.08)}66%{transform:translate(-30px,40px) scale(.95)}}

.grain{
  position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.2 0 0 0 0 0.1 0 0 0 0 0.4 0 0 0 0.7 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* nav */
nav.top{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 56px;
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  background:rgba(245,239,230,.62);
  border-bottom:1px solid #3A177214;
  transition:padding .3s ease;
}
nav.top.scrolled{padding:12px 56px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--purple)}
.brand img{height:44px;width:auto;display:block;transition:height .3s ease,transform .3s ease}
.brand:hover img{transform:rotate(-6deg) scale(1.05)}
nav.top.scrolled .brand img{height:36px}
.brand .name{font-family:"Magic","Manrope",sans-serif;font-size:24px;line-height:1;white-space:nowrap;transition:font-size .3s ease;transform:translateY(2px)}
nav.top.scrolled .brand .name{font-size:20px}
@media (max-width:560px){.brand .name{display:none}}

.nav-links{display:flex;gap:6px;align-items:center}
.nav-cta{
  width:44px;height:44px;border-radius:50%;
  background:var(--purple);color:var(--beige);
  border:none;cursor:pointer;padding:0;
  display:inline-flex;align-items:center;justify-content:center;
  position:relative;z-index:60;margin-right:0;
  transition:transform .35s cubic-bezier(.6,-.2,.3,1.4),background .3s,margin-right .35s ease;
}
nav.top.scrolled .nav-cta{margin-right:18px}
.nav-cta:hover{transform:rotate(-30deg)}
.nav-cta.open{transform:rotate(0deg);background:var(--yellow);color:var(--purple)}
.menu-icon{transition:transform .45s cubic-bezier(.6,-.3,.3,1.4)}
.nav-cta.open .menu-icon{transform:rotate(180deg)}
.menu-icon .l{transform-box:fill-box;transform-origin:center;transition:transform .4s cubic-bezier(.6,-.2,.3,1.4),opacity .25s ease}
.nav-cta.open .l-v{transform:scaleY(0)}
.nav-cta.open .l-h{transform:scaleX(0)}
.nav-cta.open .l-d1,.nav-cta.open .l-d2{transform:scale(1.18)}

/* side menu */
.side-backdrop{position:fixed;inset:0;background:rgba(58,23,114,.18);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;z-index:48;transition:opacity .35s ease}
.side-backdrop.open{opacity:1;pointer-events:auto}
.side-menu{
  position:fixed;top:0;right:0;bottom:0;width:min(460px,90vw);z-index:49;
  background:var(--beige-deep);transform:translateX(100%);
  transition:transform .55s cubic-bezier(.77,0,.18,1);
  display:flex;flex-direction:column;padding:104px 48px 40px;overflow-y:auto;
  border-left:1px solid #3A177222;box-shadow:-20px 0 60px -20px rgba(58,23,114,.18);
}
.side-menu.open{transform:translateX(0)}
.side-menu::before{content:"";position:absolute;width:340px;height:340px;border-radius:50%;left:-120px;bottom:-120px;background:radial-gradient(circle,#F8C63088 0%,transparent 70%);filter:blur(40px);opacity:.7;pointer-events:none}
.sm-eyebrow{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.55;margin-bottom:36px;display:flex;align-items:center;gap:12px;position:relative}
.sm-eyebrow::before{content:"";width:24px;height:1px;background:var(--purple);opacity:.4}
.sm-nav{display:flex;flex-direction:column;flex:1;position:relative}
.sm-nav a{
  display:flex;align-items:baseline;gap:20px;padding:22px 0;
  border-top:1px solid #3A177222;text-decoration:none;color:var(--purple);
  position:relative;opacity:0;transform:translateY(20px);
  transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1),padding .3s ease;
}
.sm-nav a:last-of-type{border-bottom:1px solid #3A177222}
.sm-nav a:hover{padding-left:10px}
.sm-nav a:hover .sm-arrow{transform:translate(4px,-4px);opacity:1}
.side-menu.open .sm-nav a{opacity:1;transform:translateY(0)}
.side-menu.open .sm-nav a:nth-of-type(1){transition-delay:.18s,.18s,0s}
.side-menu.open .sm-nav a:nth-of-type(2){transition-delay:.25s,.25s,0s}
.side-menu.open .sm-nav a:nth-of-type(3){transition-delay:.32s,.32s,0s}
.sm-num{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;opacity:.45;width:28px;flex-shrink:0}
.sm-label{font-family:"Magic","Manrope",sans-serif;font-size:62px;line-height:1;flex:1}
.sm-arrow{margin-left:auto;font-size:16px;opacity:.4;transition:transform .3s ease,opacity .3s}
.sm-foot{margin-top:48px;display:flex;flex-direction:column;gap:24px;position:relative;z-index:1}
.sm-social{display:flex;flex-wrap:wrap;gap:8px}
.sm-social a{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--purple);border:1px solid #3A177233;padding:7px 12px;border-radius:999px;transition:all .25s}
.sm-social a:hover{background:var(--purple);color:var(--beige);border-color:var(--purple)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(248,198,48,.7)}70%{box-shadow:0 0 0 8px rgba(248,198,48,0)}100%{box-shadow:0 0 0 0 rgba(248,198,48,0)}}

/* eyebrow */
.eyebrow{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:14px;color:var(--purple);margin-bottom:24px}
.eyebrow::before{content:"";width:32px;height:1px;background:var(--purple);opacity:.4}
.eyebrow .num{opacity:.5}

/* ===== Case Study Layout ===== */
main.case-page{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:64px 56px 0}

.case-back{
  font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;
  opacity:.7;display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--purple);
  margin-bottom:56px;transition:padding .25s ease,opacity .25s;
}
.case-back:hover{padding-left:6px;opacity:1}

.case-hero h1{
  font-family:"Magic","Manrope",sans-serif;font-weight:400;
  font-size:clamp(72px,11vw,184px);line-height:1;letter-spacing:-.005em;margin-top:28px;
}
.case-hero h1 .it{font-family:"Magic","Manrope",sans-serif}
.case-lead{font-family:"Manrope",sans-serif;font-size:22px;line-height:1.5;max-width:48ch;margin-top:32px;opacity:.85}

.case-meta{margin-top:72px;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding-top:32px;border-top:1px solid #3A177226}
.case-meta .k{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;opacity:.55}
.case-meta .v{font-family:"Magic","Manrope",sans-serif;font-size:30px;margin-top:8px;line-height:1.05}

.case-cover{margin:96px 0 0;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:var(--beige-deep);position:relative;border:1px solid #3A177222}
.case-cover .ph{
  width:100%;height:100%;
  background:repeating-linear-gradient(135deg,#3A177208 0 14px,transparent 14px 28px),linear-gradient(180deg,#EAE0CC,#DDD2BA);
  display:flex;align-items:flex-end;padding:28px;
  font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--purple);opacity:.6;
}
.case-cover .yellow-pill{position:absolute;top:24px;left:24px;background:var(--yellow);color:var(--purple);font-family:"Magic","Manrope",sans-serif;font-size:20px;padding:8px 16px;border-radius:999px;z-index:2}

.case-section{padding:80px 0;position:relative}
.case-grid-2{display:grid;grid-template-columns:1fr 1.5fr;gap:80px;align-items:start}
.case-h2{font-family:"Magic","Manrope",sans-serif;font-weight:400;font-size:clamp(40px,5vw,80px);line-height:1;letter-spacing:-.005em;max-width:11ch}
.case-h2 .it{font-family:"Magic","Manrope",sans-serif}
.case-text p{font-size:17px;line-height:1.7;margin-bottom:20px;max-width:58ch}
.case-text p.large{font-family:"Manrope",sans-serif;font-size:22px;line-height:1.5;opacity:.95;margin-bottom:28px}
.case-text strong{font-weight:600}

.case-image{margin:48px 0;border-radius:6px;aspect-ratio:4/3;overflow:hidden;background:var(--beige-deep);position:relative;border:1px solid #3A177222}
.case-image.wide{aspect-ratio:16/9}
.case-image.tall{aspect-ratio:3/4}
.case-image .ph{
  width:100%;height:100%;
  background:repeating-linear-gradient(135deg,#3A177208 0 14px,transparent 14px 28px),linear-gradient(180deg,#EAE0CC,#DDD2BA);
  display:flex;align-items:flex-end;padding:24px;
  font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--purple);opacity:.6;
}
.case-image .caption{
  position:absolute;bottom:20px;right:20px;
  font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--purple);background:var(--beige);padding:6px 12px;border-radius:4px;opacity:.85;
}
.case-images-2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:48px 0}
.case-images-2 .case-image{margin:0}
.case-images-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:48px 0}
.case-images-3 .case-image{margin:0;aspect-ratio:1/1}

.case-quote{
  font-family:"Magic","Manrope",sans-serif;font-weight:400;
  font-size:clamp(36px,5vw,72px);line-height:1.1;max-width:24ch;
  margin:64px auto;text-align:center;padding:48px 24px;position:relative;
}
.case-quote::before{content:"\201C";display:block;font-size:1em;line-height:.6;opacity:.5;margin-bottom:12px;color:var(--purple)}
.case-quote::after{content:"";display:block;width:48px;height:1px;background:var(--purple);opacity:.4;margin:24px auto 0}
.case-quote .attr{display:block;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;opacity:.55;margin-top:20px}

.case-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin:48px 0 0;padding:40px 0 0;border-top:1px solid #3A177226}
.case-stat .v{font-family:"Magic","Manrope",sans-serif;font-size:clamp(48px,6vw,96px);line-height:1;color:var(--purple)}
.case-stat .v sup{font-size:.4em;opacity:.6;font-family:"JetBrains Mono",monospace;font-weight:400;vertical-align:top;margin-left:4px}
.case-stat .k{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;opacity:.55;margin-top:10px}

/* next project */
.case-next{
  display:block;margin-top:96px;padding:88px 56px;
  background:var(--purple);color:var(--beige);
  border-radius:8px;position:relative;overflow:hidden;
  text-decoration:none;
  transition:transform .4s ease;
}
.case-next:hover{transform:translateY(-2px)}
.case-next .yellow-blob{
  position:absolute;top:-60px;right:-60px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle,var(--yellow),transparent 70%);
  opacity:.4;transition:transform .6s ease;
}
.case-next:hover .yellow-blob{transform:translate(-20px,20px) scale(1.1)}
.case-next .eyebrow{color:var(--yellow);margin-bottom:8px}
.case-next .eyebrow::before{background:var(--yellow);opacity:.6}
.case-next h2{
  font-family:"Magic","Manrope",sans-serif;font-weight:400;
  font-size:clamp(56px,7vw,124px);line-height:1;letter-spacing:-.005em;
  display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.case-next .arrow{
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;border:1px solid #FFFFFF33;
  transition:transform .4s ease,background .3s,border-color .3s;
  flex-shrink:0;font-size:24px;
}
.case-next:hover .arrow{background:var(--yellow);border-color:var(--yellow);color:var(--purple);transform:translate(8px,-8px) rotate(-15deg)}

.case-foot{
  margin-top:60px;padding:36px 0;border-top:1px solid #3A177226;
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
  font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;
}
.case-foot .copy{opacity:.55}
.case-foot .links{display:flex;gap:18px}
.case-foot a{color:var(--purple);text-decoration:none;text-transform:uppercase;opacity:.7}
.case-foot a:hover{opacity:1}

@media (max-width:900px){
  nav.top{padding:14px 24px}
  main.case-page{padding:48px 24px 0}
  .case-meta,.case-stats,.case-images-2,.case-images-3{grid-template-columns:1fr;gap:24px}
  .case-grid-2{grid-template-columns:1fr;gap:32px}
  .case-next{padding:56px 28px}
  .case-next h2{font-size:clamp(40px,12vw,68px)}
}
