/* v3 design layer: case studies, bento on paper, numbers band, about card, gradient borders, glows, tilt. */
:root{--paper:#f3f1ec;--paper-ink:#121316;--paper-dim:#5d5f66;--grad:linear-gradient(135deg,#ff4b2b,#ff8a3d 40%,#7c5cff 100%)}

/* ---- hero: wider copy column (no orphan words), warm glow that bridges the clip's blue to the brand orange */
.hx-copy{width:min(720px,52vw)}
.hero-explode .sticky::after{content:"";position:absolute;left:-10vw;bottom:-20vh;width:70vw;height:70vh;background:radial-gradient(closest-side,rgba(255,75,43,.16),transparent 70%);pointer-events:none;z-index:1}
.hx-copy{z-index:10}

/* ---- section glows: soft light behind every other dark section */
#dalsie,#ai-audit,#kontakt{position:relative;isolation:isolate}
#dalsie::before,#ai-audit::before,#kontakt::before{content:"";position:absolute;z-index:-1;pointer-events:none;width:60vw;height:60vw;max-width:900px;max-height:900px;border-radius:50%;filter:blur(40px);opacity:.5}
#dalsie::before{right:-20vw;top:-10vw;background:radial-gradient(closest-side,rgba(124,92,255,.18),transparent)}
#ai-audit::before{left:-20vw;top:0;background:radial-gradient(closest-side,rgba(255,75,43,.16),transparent)}
#kontakt::before{right:-15vw;bottom:-10vw;background:radial-gradient(closest-side,rgba(255,138,61,.15),transparent)}

/* ---- gradient hairline border helper (appears on hover) */
.case-shot,.tile,.package,.work-card,.about2-card{--b:0}
.case-shot::after,.tile::after,.about2-card::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:var(--b);transition:opacity .35s;pointer-events:none}
.case-shot:hover,.tile:hover,.about2-card:hover{--b:1}

/* ---- tilt (site.js sets --rx/--ry on [data-tilt]) */
[data-tilt]{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0px));transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s;will-change:transform}
[data-tilt].is-tilting{transition:transform .08s linear,box-shadow .4s}

/* ---- case studies */
.cases .case{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(28px,5vw,72px);align-items:center;padding:clamp(28px,5vw,56px) 0;border-top:1px solid var(--line)}
.cases .case:first-of-type{border-top:0;padding-top:0}
.case-flip .case-shot{order:2}
.case-shot{position:relative;display:block;border-radius:18px;overflow:hidden;background:#15171b;border:1px solid var(--line);box-shadow:0 40px 90px -40px rgba(0,0,0,.9)}
.case-shot:hover{box-shadow:0 50px 110px -40px rgba(255,75,43,.35)}
.case-bar{display:flex;align-items:center;gap:6px;height:34px;padding:0 14px;background:#1b1d22;border-bottom:1px solid var(--line)}
.case-bar i{width:10px;height:10px;border-radius:50%}
.case-bar i:nth-child(1){background:#ff5f57}.case-bar i:nth-child(2){background:#febc2e}.case-bar i:nth-child(3){background:#28c840}
.case-bar span{margin:0 auto;font-size:.74rem;font-weight:700;color:var(--ink-faint);background:#26282e;padding:3px 16px;border-radius:9px}
.case-shot img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.case-shot:hover img{transform:scale(1.04)}
.case-num{font-size:.85rem;font-weight:800;letter-spacing:.2em;color:var(--accent)}
.case-body h3{font-size:clamp(1.8rem,3.4vw,2.8rem);margin:10px 0 14px;letter-spacing:-.02em}
.case-body p{color:var(--ink-dim);font-size:1.05rem;max-width:46ch}
.case-metrics{display:flex;gap:16px;margin:26px 0 22px}
.case-metrics div{flex:1;border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent)}
.case-metrics dt{font-size:clamp(2.2rem,4vw,3rem);font-weight:800;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.case-metrics dd{margin-top:8px;font-weight:700;font-size:.92rem;line-height:1.35}
.case-metrics small{color:var(--ink-faint);font-weight:600}
.case-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.case-tags span{font-size:.78rem;font-weight:700;color:var(--ink-dim);border:1px solid var(--line);border-radius:999px;padding:6px 12px}

/* ---- paper section + bento */
.paper{background:var(--paper);color:var(--paper-ink);border-radius:36px;margin:0 clamp(8px,1.4vw,20px)}
.paper .eyebrow{color:#e0401f}
.paper .section-head h2{color:var(--paper-ink)}
.paper-lead{color:var(--paper-dim);max-width:40ch;font-size:1.02rem}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(190px,auto);gap:18px}
.tile{position:relative;display:flex;flex-direction:column;gap:10px;padding:28px;border-radius:22px;background:#fff;color:var(--paper-ink);box-shadow:0 1px 0 rgba(0,0,0,.04),0 20px 40px -28px rgba(20,20,30,.35);overflow:hidden}
.tile:hover{box-shadow:0 1px 0 rgba(0,0,0,.04),0 30px 60px -28px rgba(255,75,43,.4)}
.tile h3{font-size:1.35rem;letter-spacing:-.01em}
.tile p{color:var(--paper-dim);font-size:.96rem}
.tile-xl{grid-column:span 2;grid-row:span 2;background:radial-gradient(120% 90% at 100% 0%,rgba(255,75,43,.12),transparent 55%),#fff}
.tile-xl h3{font-size:clamp(1.8rem,3vw,2.6rem);margin-top:auto}
.tile-xl p{font-size:1.05rem;max-width:44ch}
.tile-tall{grid-row:span 2;background:radial-gradient(120% 80% at 0% 100%,rgba(124,92,255,.14),transparent 60%),#fff}
.tile-tall h3{margin-top:auto}
.tile-dark{background:#121316;color:#f5f4f0}
.tile-dark p{color:#a4a5ab}
.tile-ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#121316;color:#fff}
.tile-dark .tile-ico{background:#fff;color:#121316}
.tile-ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tile-price{position:absolute;top:26px;right:26px;font-size:.85rem;font-weight:800;color:#fff;background:var(--accent);padding:6px 14px;border-radius:999px;box-shadow:0 8px 20px -8px rgba(255,75,43,.7)}
.tile ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.tile li{font-size:.8rem;font-weight:700;color:var(--paper-ink);background:var(--paper);border-radius:999px;padding:6px 12px}
.tile-more{margin-top:auto;padding-top:10px;font-weight:800;font-size:.92rem;color:#e0401f}
.tile-xl .tile-more,.tile-tall .tile-more{margin-top:12px}
.tile-big{font-size:clamp(3rem,6vw,4.6rem);font-weight:800;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tile-big small{font-size:.4em;-webkit-text-fill-color:#a4a5ab}
.tile-dark h3{margin-top:auto}

/* ---- numbers band */
.numbers{padding:clamp(70px,11vh,120px) 0;border-block:1px solid var(--line);background:radial-gradient(60% 120% at 50% 0%,rgba(255,75,43,.08),transparent 70%)}
.numbers-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.num-item{text-align:left;padding-left:20px;border-left:1px solid var(--line)}
.num-item b{display:block;font-size:clamp(3rem,6.4vw,5.6rem);font-weight:800;line-height:1;letter-spacing:-.04em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.num-item span{display:block;margin-top:12px;color:var(--ink-dim);font-weight:600;max-width:20ch}

/* ---- about card */
.about2-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,6vw,90px);align-items:center}
.about2-card{position:relative;border-radius:26px;padding:clamp(28px,4vw,46px);background:radial-gradient(90% 70% at 0% 0%,rgba(255,75,43,.22),transparent 60%),radial-gradient(80% 70% at 100% 100%,rgba(124,92,255,.2),transparent 60%),#121418;border:1px solid var(--line);box-shadow:0 40px 90px -40px rgba(0,0,0,.9);aspect-ratio:4/5;display:flex;flex-direction:column}
.about2-card img{width:min(140px,40%);height:auto}
.about2-name{margin-top:auto;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:800;letter-spacing:-.02em}
.about2-role{color:var(--ink-dim);font-weight:700;letter-spacing:.06em;font-size:.85rem;text-transform:uppercase;margin-top:6px}
.about2-card ul{list-style:none;margin-top:24px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:20px}
.about2-card li{color:var(--ink-dim);font-weight:600}
.about2-card li b{color:var(--ink);margin-right:6px}
.about2 h2{font-size:clamp(2.2rem,5vw,3.6rem);margin:14px 0 18px}

/* ---- footer: giant sign-off */
.footer-big{display:block;font-size:clamp(3rem,12vw,11rem);font-weight:800;letter-spacing:-.05em;line-height:.9;padding:clamp(40px,8vh,90px) 0 clamp(20px,4vh,40px);background:linear-gradient(180deg,#f5f4f0 30%,rgba(245,244,240,.25));-webkit-background-clip:text;background-clip:text;color:transparent}
.footer-big span{background:var(--grad);-webkit-background-clip:text;background-clip:text}

/* ---- buttons: soft glow + sheen */
.button-primary{position:relative;overflow:hidden;box-shadow:0 10px 30px -12px rgba(255,75,43,.8)}
.button-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s}
.button-primary:hover::after{transform:translateX(120%)}

@media(max-width:860px){
  .hx-copy{width:auto}
  .cases .case{grid-template-columns:1fr;gap:22px}
  .case-flip .case-shot{order:0}
  .bento{grid-template-columns:1fr 1fr}
  .tile-xl{grid-column:span 2;grid-row:auto}
  .tile-tall{grid-row:auto}
  .tile-dark{grid-column:span 2}
  .numbers-grid{grid-template-columns:1fr 1fr;gap:34px 18px}
  .about2-grid{grid-template-columns:1fr}
  .about2-card{aspect-ratio:auto;min-height:340px}
  .paper{border-radius:24px}
}
@media(max-width:560px){.bento{grid-template-columns:1fr}.tile-xl,.tile-dark{grid-column:auto}.tile-price{position:static;align-self:flex-start}}
@media(prefers-reduced-motion:reduce){[data-tilt]{transform:none!important}}
.reveal.in[data-tilt]{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0px))}
.tile-dark{grid-column:1/-1;flex-direction:row;align-items:center;gap:28px;padding:30px 34px}
.tile-dark .tile-big{flex:none}
.tile-dark h3{margin-top:0}
.tile-dark>div{display:flex;flex-direction:column;gap:6px}
@media(max-width:560px){.tile-dark{flex-direction:column;align-items:flex-start}}
