/* Selbst gehostet – keine Verbindung zu Google (DSGVO) */
@font-face{font-family:"Instrument Sans";src:url("/fonts/instrument-sans-latin-wght-normal.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("/fonts/instrument-serif-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("/fonts/instrument-serif-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
/* =========================================================
   thomasjlhahn.com · Noir · Agentur-Editorial
   ========================================================= */
:root{
  --bg:#0d0d0c;
  --bg-2:#141413;
  --fg:#ebe8e2;
  --fg-2:#b7b3ac;
  --muted:#8f8b84;
  --line:rgba(235,232,226,.16);
  --sans:"Instrument Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:"Instrument Serif","Iowan Old Style",Georgia,serif;
  --g:clamp(16px,3vw,44px);
  --ease:cubic-bezier(.19,1,.22,1);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.5;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0}
h1,h2,h3,p{margin:0;font-weight:400}
:focus-visible{outline:1px solid var(--fg);outline-offset:4px}
::selection{background:var(--fg);color:var(--bg)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:200;background:var(--fg);color:var(--bg);padding:8px 12px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Filmkorn */
body::after{content:"";position:fixed;inset:-50%;pointer-events:none;z-index:90;opacity:.055;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>");animation:grain 1.1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
@media (prefers-reduced-motion:reduce){body::after{animation:none}}

/* Monogramm */
.mark{width:34px;height:34px;color:var(--fg);display:block}
.mark--sm{width:16px;height:16px;display:inline-block;vertical-align:-3px;margin-right:10px;color:var(--muted)}

/* Roll-Links: Text rollt beim Hover nach oben durch */
.roll{display:inline-block;overflow:hidden;vertical-align:bottom;line-height:1.2}
.roll>span{display:inline-block;position:relative;transition:transform .6s var(--ease)}
.roll>span::after{content:attr(data-t);position:absolute;left:0;top:100%}
.roll:hover>span,.roll:focus-visible>span{transform:translateY(-100%)}

/* ---------- Kopfleiste ---------- */
.bar{position:fixed;top:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:14px var(--g);padding-top:calc(14px + env(safe-area-inset-top,0px));mix-blend-mode:difference;color:#fff}
.bar .mark{color:#fff}
.nav{display:flex;gap:28px;font-size:13px}
.bar__cta{justify-self:end;font-size:13px}
@media (max-width:760px){.nav{display:none}.bar{grid-template-columns:1fr auto}}

main{padding-inline:var(--g)}

/* ---------- Rhythmus ---------- */
.rule{display:block;height:1px;background:var(--line);transform-origin:left}
:root{--space:clamp(180px,26vw,440px);--space-s:clamp(100px,13vw,220px)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.label{font-size:12.5px;color:var(--muted);margin-bottom:clamp(40px,6vw,96px)}
figcaption{margin-top:14px;font-size:12px;color:var(--muted)}

/* ---------- Hero ---------- */
.hero{padding-top:clamp(120px,16vw,220px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px)}
.hero__kicker{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-bottom:clamp(20px,3vw,40px)}
.hero__name{grid-column:1/-1;font-size:clamp(68px,17.2vw,300px);line-height:.84;letter-spacing:-.055em;font-weight:500}
.hero__name .line{display:block;overflow:hidden;padding-bottom:.04em}
.hero__name .line--r{text-align:right}
.hero__name .split{display:inline-block}
.hero__row{grid-column:1/6;grid-row:3;align-self:start;padding-top:clamp(28px,4vw,56px)}
.hero__lede{font-size:clamp(20px,2vw,30px);line-height:1.15;letter-spacing:-.015em;max-width:14ch}
.hero__portrait{grid-column:8/13;grid-row:3;margin:var(--space-s) 0 0;aspect-ratio:4/5}
.hero__portrait img{width:100%;height:100%;object-fit:contain}
@media (max-width:760px){.hero__row{grid-column:1/-1;grid-row:auto;padding-top:28px}.hero__portrait{grid-column:2/12;grid-row:auto;margin-top:56px}}

/* ---------- Intro ---------- */
.intro{padding-block:var(--space)}
.intro__text{font-size:clamp(34px,5vw,84px);line-height:1;letter-spacing:-.045em;font-weight:500;max-width:12ch;margin-left:clamp(0px,33vw,560px)}
@media (max-width:760px){.intro__text{margin-left:0}}

/* ---------- Über mich ---------- */
.about{padding-bottom:var(--space)}
.about__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);row-gap:clamp(60px,9vw,160px);align-items:end}
.about__img{margin:0;overflow:hidden}
.about__img img{width:100%;height:auto;object-fit:cover}
.about__img--a{grid-column:1/8}
.about__img--a img{aspect-ratio:16/9}
.about__text{font-size:clamp(19px,1.7vw,26px);line-height:1.25;letter-spacing:-.015em;max-width:24ch}
.about__text--a{grid-column:9/13;align-self:end;padding-bottom:40px}
.about__img--b{grid-column:6/11;grid-row:2}
.about__img--b img{aspect-ratio:4/5}
.about__text--b{grid-column:1/5;grid-row:2;align-self:start}
@media (max-width:760px){.about__grid{grid-template-columns:1fr;row-gap:40px}.about__img--a,.about__img--b,.about__text--a,.about__text--b{grid-column:1;grid-row:auto;padding:0}}

/* ---------- Statement ---------- */
.statement{padding-block:var(--space-s) var(--space)}
.statement__line{font-size:clamp(40px,7.6vw,132px);line-height:1;letter-spacing:-.045em;font-weight:500}
.statement .s1{text-transform:uppercase;letter-spacing:-.03em}
.statement .s2{padding-left:32%}
.statement .s3{padding-left:10%}
.statement .s4{text-align:right}
.rotator{display:inline-block;height:1.02em;overflow:hidden;vertical-align:bottom;font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0}
.rotator span{display:block;line-height:1.02;animation:rot 7.5s var(--ease) infinite}
@keyframes rot{0%,26%{transform:translateY(0)}33%,59%{transform:translateY(-100%)}66%,92%{transform:translateY(-200%)}100%{transform:translateY(-300%)}}
@media (prefers-reduced-motion:reduce){.rotator span{animation:none}}
@media (max-width:640px){.statement .s2{padding-left:18%}}

/* ---------- Werdegang ---------- */
.career{padding-bottom:var(--space);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px)}
.career .label{grid-column:1/-1}
.career__list{grid-column:5/13;list-style:none;margin:0;padding:0}
.career__list li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:20px;align-items:baseline;padding:clamp(18px,1.8vw,28px) 0;border-top:1px solid var(--line);transition:padding .5s var(--ease)}
.career__list li:last-child{border-bottom:1px solid var(--line)}
.career__list li:hover{padding-left:14px}
.career__y{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.career__t{font-size:clamp(22px,2.4vw,38px);line-height:1.05;letter-spacing:-.025em}
@media (max-width:760px){.career__list{grid-column:1/-1}.career__list li{grid-template-columns:80px 1fr}}

/* ---------- Projekte ---------- */
.projects{padding-bottom:var(--space);position:relative}
.plist{list-style:none;margin:0;padding:0}
.prow{display:grid;grid-template-columns:clamp(40px,8vw,140px) minmax(0,1fr) minmax(0,.7fr);gap:20px;align-items:baseline;padding:clamp(14px,1.6vw,24px) 0;transition:opacity .4s,transform .7s var(--ease)}
.prow__n{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.prow__name{font-size:clamp(34px,6.4vw,112px);line-height:.95;letter-spacing:-.05em;font-weight:500}
.prow__desc{color:var(--fg-2);font-size:14px;max-width:32ch;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .6s var(--ease)}
.plist:hover .prow{opacity:.22}
.plist .prow:hover{opacity:1;transform:translateX(clamp(8px,1.5vw,24px))}
.plist .prow:hover .prow__desc{opacity:1;transform:none}
@media (hover:none){.prow__desc{opacity:1;transform:none}}
@media (max-width:860px){.prow{grid-template-columns:32px minmax(0,1fr);gap:4px 12px}.prow__desc{grid-column:2;opacity:1;transform:none}}
.hover-img{position:fixed;left:0;top:0;width:clamp(200px,20vw,320px);aspect-ratio:4/5;margin:0;pointer-events:none;z-index:40;opacity:0;overflow:hidden;transition:opacity .35s}
.hover-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform .8s var(--ease)}
.hover-img.on{opacity:1}
.hover-img.on img{transform:scale(1)}
@media (hover:none){.hover-img{display:none}}

/* ---------- Großes Bild ---------- */
.wide{margin-inline:calc(var(--g) * -1);padding-bottom:var(--space)}
.wide__img{margin:0;aspect-ratio:21/9;overflow:hidden;background:var(--bg-2)}
.wide__img img{width:100%;height:100%;object-fit:cover}
.wide__text{padding-inline:var(--g);margin-top:clamp(40px,6vw,96px);font-size:clamp(28px,3.4vw,56px);line-height:1.02;letter-spacing:-.04em;max-width:14ch;margin-left:auto;margin-right:clamp(0px,8vw,140px)}
@media (max-width:640px){.wide__img{aspect-ratio:4/3}}

/* ---------- Privat ---------- */
.private{padding-bottom:var(--space)}
.cards{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px)}
.card{display:flex;flex-direction:column;gap:12px;grid-column:2/6}
.card--offset{grid-column:8/12;margin-top:clamp(0px,18vw,320px)}
.card__img{margin:0 0 10px;aspect-ratio:4/5;overflow:hidden;background:var(--bg-2)}
.card__img img{width:100%;height:100%;object-fit:cover}
.card__title{font-family:var(--serif);font-style:italic;font-size:clamp(30px,3vw,48px);line-height:1}
.card p{color:var(--fg-2);font-size:15px}
@media (max-width:760px){.card,.card--offset{grid-column:1/-1;margin-top:0}.cards{row-gap:60px}}

/* ---------- Kontakt ---------- */
.contact{padding-bottom:var(--space);display:flex;flex-direction:column;gap:clamp(24px,3vw,40px)}
.contact .label{margin-bottom:0}
.contact__title{font-size:clamp(72px,15vw,260px);line-height:.86;letter-spacing:-.055em;font-weight:500}
.contact__row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-left:clamp(0px,33vw,560px)}
.contact__mail{font-size:clamp(20px,2vw,30px);letter-spacing:-.015em;user-select:all;word-break:break-all}
.btn{appearance:none;border:1px solid var(--line);background:transparent;color:var(--fg);font:inherit;font-size:13px;padding:12px 20px;border-radius:999px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s}
.btn:hover{border-color:var(--fg);background:var(--fg);color:var(--bg)}
@media (max-width:760px){.contact__row{margin-left:0}}

/* ---------- Fußbereich ---------- */
.foot{padding:0 var(--g);padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
.foot__top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);padding-block:clamp(60px,8vw,120px)}
.foot__claim{font-size:clamp(26px,2.6vw,42px);line-height:1.02;letter-spacing:-.035em;max-width:12ch}
.foot__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;font-size:14px}
.foot__cols div{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.foot__label{font-size:12px;color:var(--muted);margin-bottom:6px}
.foot__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12.5px;color:var(--muted)}
@media (max-width:900px){.foot__top{grid-template-columns:1fr}}
@media (max-width:520px){.foot__cols{grid-template-columns:1fr 1fr}}

/* ---------- Unterseiten ---------- */
.legal{max-width:720px;margin:0 auto;padding-block:clamp(110px,12vw,160px) clamp(48px,8vw,96px)}
.legal h1{font-size:clamp(48px,8vw,96px);line-height:.9;letter-spacing:-.045em;font-weight:500;margin-bottom:40px}
.legal h2{font-size:12.5px;color:var(--muted);margin:40px 0 12px}
.legal p,.legal li{color:var(--fg-2);font-size:17px}
.legal p+p{margin-top:12px}
.legal .back{font-size:13px;color:var(--muted)}
.legal .stand{margin-top:40px;font-size:12.5px;color:var(--muted)}

/* =========================================================
   Bewegung – nur mit JS, nur ohne reduced-motion
   ========================================================= */
@media (prefers-reduced-motion:no-preference){
  .js .split-words .w{text-indent:0;display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
  .js .split-words .wi{display:inline-block;transform:translateY(110%);transition:transform 1s var(--ease);transition-delay:calc(var(--i,0) * 35ms)}
  .js .split-words.in .wi{transform:none}

  .js .hero__name .split{transform:translateY(105%);transition:transform 1.3s var(--ease)}
  .js .hero__name .line--r .split{transition-delay:.12s}
  .js .hero.in .hero__name .split{transform:none}
  .js .hero__kicker,.js .hero__scroll{opacity:0;transition:opacity 1s .5s}
  .js .hero.in .hero__kicker,.js .hero.in .hero__scroll{opacity:1}

  .js .reveal-img img{clip-path:inset(0 0 100% 0);transform:scale(1.25);transition:clip-path 1.4s var(--ease),transform 1.8s var(--ease)}
  .js .reveal-img.in img{clip-path:inset(0 0 0 0);transform:scale(1)}

  .js .rule{transform:scaleX(0);transition:transform 1.4s var(--ease)}
  .js .rule.in{transform:scaleX(1)}

  .js .fade-up{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
  .js .fade-up.in{opacity:1;transform:none}
}


/* ---------- Linienzeichnungen (Pinsel/Füller) ---------- */
.drawing svg{display:block;width:100%;height:auto;color:var(--fg);overflow:visible}
.hero__portrait{position:relative}
.hero__portrait .portrait-svg{aspect-ratio:4/5}
.hero__sig{position:absolute;left:-16%;bottom:2%;width:58%;transform:rotate(-7deg);pointer-events:none}
@media (max-width:760px){.hero__sig{left:-4%;width:54%}}

/* ---------- Musik ---------- */
.music{padding-bottom:var(--space)}
.music__title{font-size:clamp(44px,8vw,132px);line-height:.9;letter-spacing:-.05em;font-weight:500;margin-left:clamp(0px,16vw,280px)}
.music__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);margin-top:var(--space-s)}
.music__item{margin:0}
.music__item--a{grid-column:1/8}
.music__item--b{grid-column:8/12;margin-top:clamp(0px,14vw,240px)}
@media (max-width:760px){.music__item--a,.music__item--b{grid-column:1/-1;margin-top:48px}.music__title{margin-left:0}}

@media (prefers-reduced-motion:no-preference){
  .js .drawing .draw{stroke-dashoffset:1;transition:stroke-dashoffset 1.3s var(--ease)}
  .js .drawing.in .draw,.js .hero.in .drawing .draw{stroke-dashoffset:0}
  .js .drawing .d0{transition-delay:0.00s}
  .js .drawing .d1{transition-delay:0.06s}
  .js .drawing .d2{transition-delay:0.12s}
  .js .drawing .d3{transition-delay:0.18s}
  .js .drawing .d4{transition-delay:0.24s}
  .js .drawing .d5{transition-delay:0.30s}
  .js .drawing .d6{transition-delay:0.36s}
  .js .drawing .d7{transition-delay:0.42s}
  .js .drawing .d8{transition-delay:0.48s}
  .js .drawing .d9{transition-delay:0.54s}
  .js .drawing .d10{transition-delay:0.60s}
  .js .drawing .d11{transition-delay:0.66s}
  .js .drawing .d12{transition-delay:0.72s}
  .js .drawing .d13{transition-delay:0.78s}
  .js .drawing .d14{transition-delay:0.84s}
  .js .drawing .d15{transition-delay:0.90s}
  .js .drawing .d16{transition-delay:0.96s}
  .js .drawing .d17{transition-delay:1.02s}
  .js .drawing .d18{transition-delay:1.08s}
  .js .drawing .d19{transition-delay:1.14s}
  .js .drawing .d20{transition-delay:1.20s}
  .js .drawing .d21{transition-delay:1.26s}
  .js .drawing .d22{transition-delay:1.32s}
  .js .drawing .d23{transition-delay:1.38s}
  .js .drawing .d24{transition-delay:1.44s}
  .js .drawing .d25{transition-delay:1.50s}
  .js .drawing .d26{transition-delay:1.56s}
  .js .drawing .d27{transition-delay:1.62s}
  .js .drawing .d28{transition-delay:1.68s}
  .js .drawing .d29{transition-delay:1.74s}
  .js .drawing .d30{transition-delay:1.80s}
  .js .drawing .d31{transition-delay:1.86s}
  .js .drawing .d32{transition-delay:1.92s}
  .js .drawing .d33{transition-delay:1.98s}
  .js .drawing .d34{transition-delay:2.04s}
  .js .drawing .d35{transition-delay:2.10s}
  .js .drawing .d36{transition-delay:2.16s}
  .js .drawing .d37{transition-delay:2.22s}
  .js .drawing .d38{transition-delay:2.28s}
  .js .drawing .d39{transition-delay:2.34s}
  .js .drawing .d40{transition-delay:2.40s}
  .js .drawing .d41{transition-delay:2.46s}
  .js .drawing .d42{transition-delay:2.52s}
  .js .drawing .d43{transition-delay:2.58s}
  .js .drawing .d44{transition-delay:2.64s}
  .js .drawing .d45{transition-delay:2.70s}
  .js .hero__sig .d0{transition-delay:2.70s;transition-duration:.9s}
  .js .hero__sig .d1{transition-delay:3.02s;transition-duration:.9s}
  .js .hero__sig .d2{transition-delay:3.34s;transition-duration:.9s}
  .js .hero__sig .d3{transition-delay:3.66s;transition-duration:.9s}
  .js .hero__sig .d4{transition-delay:3.98s;transition-duration:.9s}
  .js .hero__sig .d5{transition-delay:4.30s;transition-duration:.9s}
  .js .hero__sig .d6{transition-delay:4.62s;transition-duration:.9s}
  .js .hero__sig .d7{transition-delay:4.94s;transition-duration:.9s}
  .js .hero__sig .d8{transition-delay:5.26s;transition-duration:.9s}
  .js .hero__sig .d9{transition-delay:5.58s;transition-duration:.9s}
}
.music__text{margin-top:var(--space-s);margin-left:clamp(0px,33vw,560px);font-size:clamp(19px,1.7vw,26px);line-height:1.25;letter-spacing:-.015em;max-width:24ch}
.music__note{margin-top:28px;margin-left:clamp(0px,33vw,560px);font-size:12.5px;color:var(--muted)}
.career__t em{margin-left:.4em;color:var(--fg-2)}
@media (max-width:760px){.music__text,.music__note{margin-left:0}}
.hero__sig{width:66%;left:-20%}

/* ---------- Fakten (Label/Wert) ---------- */
.facts{margin:0;display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line)}
.facts>div{display:grid;grid-template-columns:clamp(110px,12vw,180px) minmax(0,1fr);gap:20px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.facts dt{font-size:12.5px;color:var(--muted)}
.facts dd{margin:0;font-size:clamp(15px,1.15vw,18px);color:var(--fg-2);line-height:1.4}
.music .facts{margin-top:var(--space-s);margin-left:clamp(0px,33vw,560px);max-width:760px}
@media (max-width:760px){.music .facts{margin-left:0}.facts>div{grid-template-columns:96px minmax(0,1fr);gap:14px}}

/* ---------- Unternehmen ---------- */
.company{padding-bottom:var(--space);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px)}
.company>.label{grid-column:1/-1}
.company__title{grid-column:1/-1;font-size:clamp(52px,10vw,176px);line-height:.88;letter-spacing:-.055em;font-weight:500}
.company__lead{grid-column:5/11;margin-top:var(--space-s);font-size:clamp(21px,2vw,32px);line-height:1.18;letter-spacing:-.02em;max-width:28ch}
.company>.facts{grid-column:5/13;margin-top:clamp(48px,6vw,96px)}
.services{grid-column:1/-1;margin-top:var(--space-s)}
.services__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);row-gap:clamp(48px,6vw,96px)}
.services__list li{display:flex;flex-direction:column;gap:12px;padding-top:18px;border-top:1px solid var(--line)}
.services__n{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.services__t{font-size:clamp(22px,2.2vw,34px);line-height:1.02;letter-spacing:-.03em}
.services__d{font-size:14.5px;color:var(--fg-2);max-width:30ch}
.packages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);margin-top:var(--space-s)}
.pkg{display:flex;flex-direction:column;gap:10px;padding:clamp(24px,2.6vw,40px) 0;border-top:1px solid var(--fg)}
.pkg__name{font-size:12.5px;color:var(--muted)}
.pkg__price{font-family:var(--serif);font-style:italic;font-size:clamp(40px,4.6vw,76px);line-height:.95;letter-spacing:-.01em}
.pkg__for{font-size:14px;color:var(--fg-2)}
.company__cta{margin-top:clamp(40px,5vw,72px)}
@media (max-width:900px){.services__list{grid-template-columns:1fr 1fr}.company__lead,.company>.facts{grid-column:1/-1}}
@media (max-width:640px){.services__list,.packages{grid-template-columns:1fr}.packages{row-gap:8px}}

/* ---------- Projekte als Fallstudien ---------- */
.case{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);align-items:start}
.case+.case{margin-top:var(--space)}
.case__n{grid-column:1/2;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:1.2em}
.case__name{grid-column:2/-1;font-size:clamp(46px,9vw,160px);line-height:.9;letter-spacing:-.055em;font-weight:500}
.case__name a{transition:opacity .4s}
.case__name a:hover{opacity:.6}
.case__claim{grid-column:2/9;margin-top:24px;font-size:clamp(19px,1.7vw,26px);line-height:1.25;letter-spacing:-.015em;color:var(--fg-2)}
.case__img{grid-column:2/9;margin:clamp(48px,6vw,96px) 0 0;overflow:hidden;background:var(--bg-2)}
.case__img img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.case .facts{grid-column:9/13;margin-top:clamp(48px,6vw,96px);align-self:end}
.case--r .case__img{grid-column:6/12;grid-row:4}
.case--r .facts{grid-column:1/5;grid-row:4}
.case--r .case__img img{aspect-ratio:4/5}
@media (max-width:900px){.case__n,.case__name,.case__claim,.case__img,.case .facts,.case--r .case__img,.case--r .facts{grid-column:1/-1;grid-row:auto}.case__n{padding-top:0;margin-bottom:10px}.case .facts{margin-top:32px}}

.heart{display:inline-block;color:var(--fg);transform-origin:center;animation:beat 2.4s ease-in-out infinite}
@keyframes beat{0%,60%,100%{transform:scale(1)}10%{transform:scale(1.25)}20%{transform:scale(1)}30%{transform:scale(1.18)}}
@media (prefers-reduced-motion:reduce){.heart{animation:none}}
/* Roll-Buttons: Innenabstand auf den Span, damit die zweite Zeile nicht durchscheint */
.btn.roll{padding:0;overflow:hidden;line-height:1.2}
.btn.roll>span{padding:12px 20px}
.btn.roll>span::after{padding:inherit;box-sizing:border-box;width:100%}

/* ---------- Kopf: Zeichnung statt Riesenname ---------- */
.hero{padding-top:clamp(96px,11vw,160px);padding-bottom:var(--space-s);align-items:end;min-height:100svh}
.hero__kicker{display:none}
.hero__portrait{grid-column:1/9;grid-row:1;margin:0;aspect-ratio:auto;max-width:880px}
.hero__side{grid-column:9/13;grid-row:1;align-self:end;display:flex;flex-direction:column;gap:clamp(18px,2vw,28px);padding-bottom:clamp(8px,2vw,40px)}
.hero__name{font-size:clamp(15px,1.1vw,17px);line-height:1.2;letter-spacing:0;font-weight:500}
.hero__name .line--r{text-align:left}
.hero__lede{font-size:clamp(28px,2.8vw,48px);line-height:1.02;letter-spacing:-.035em;max-width:11ch}
.hero__text{font-size:15px;line-height:1.5;color:var(--fg-2);max-width:34ch}
.hero__scroll{font-size:13px;color:var(--muted);align-self:flex-start}
.hero__sig{left:auto;right:-6%;bottom:4%;width:48%}
@media (max-width:900px){.hero{min-height:0}.hero__portrait,.hero__side{grid-column:1/-1;grid-row:auto}.hero__side{margin-top:40px}.hero__sig{right:-2%;width:52%}}

/* ---------- Abschnittsmarken ---------- */
.label{display:flex;align-items:baseline;gap:14px;font-size:12.5px;color:var(--fg-2);letter-spacing:.01em}
.label__n{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--muted);min-width:1.4em}
.label::after{content:"";flex:0 0 clamp(40px,6vw,96px);height:1px;background:var(--line);align-self:center}
.label--sub{color:var(--muted)}
.label--sub::after{display:none}

/* =========================================================
   Stand 25.09.: Lesefluss, Unternehmen ohne Preise, App
   ========================================================= */
/* Über mich */
.about{padding-bottom:var(--space)}
.about__title{font-size:clamp(40px,6.4vw,112px);line-height:.95;letter-spacing:-.05em;font-weight:500;max-width:13ch}
.about__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);row-gap:48px;margin-top:var(--space-s);align-items:start}
.about__photo{grid-column:1/6;margin:0;overflow:hidden;background:var(--bg-2)}
.about__photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;filter:grayscale(1) contrast(1.05)}
.about__body{grid-column:7/12;display:flex;flex-direction:column;gap:1.3em;padding-top:clamp(0px,6vw,120px)}
.about__p{font-size:clamp(18px,1.45vw,23px);line-height:1.5;letter-spacing:-.01em;color:var(--fg-2);max-width:36ch}
.about__p:first-child{color:var(--fg)}
@media (max-width:860px){.about__photo,.about__body{grid-column:1/-1}.about__body{padding-top:0}}

/* Unternehmen */
.company__lead{grid-column:1/-1;margin-top:28px;font-size:clamp(24px,2.6vw,42px);line-height:1.1;letter-spacing:-.03em;max-width:22ch;color:var(--fg-2)}
.company__body{grid-column:5/11;margin-top:var(--space-s);display:flex;flex-direction:column;gap:1.3em}
.company__body p{font-size:clamp(17px,1.35vw,21px);line-height:1.55;color:var(--fg-2);max-width:40ch}
.company__body p:first-child{color:var(--fg)}
.company .services__list{grid-column:1/-1;margin-top:var(--space-s)}
.cta{grid-column:1/-1;margin-top:var(--space-s);padding-top:clamp(48px,6vw,96px);border-top:1px solid var(--fg);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);row-gap:24px;align-items:end}
.cta__q{grid-column:1/9;font-size:clamp(34px,5vw,84px);line-height:.98;letter-spacing:-.045em;font-weight:500}
.cta__a{grid-column:1/7;font-size:clamp(17px,1.35vw,21px);color:var(--fg-2)}
.cta .btn{grid-column:9/13;justify-self:end;grid-row:1/3;align-self:end}
.btn--solid{background:var(--fg);color:var(--bg);border-color:var(--fg);font-size:clamp(15px,1.2vw,18px)}
.btn--solid.roll>span{padding:18px 30px}
.btn--solid:hover{background:transparent;color:var(--fg)}
@media (max-width:860px){.company__body,.cta__q,.cta__a,.cta .btn{grid-column:1/-1;grid-row:auto;justify-self:start}}

/* Projekte */
.projects__title{font-size:clamp(34px,5vw,84px);line-height:.98;letter-spacing:-.045em;font-weight:500;max-width:16ch;margin-bottom:var(--space-s)}
.case__side{grid-column:9/13;margin-top:clamp(48px,6vw,96px);display:flex;flex-direction:column;gap:clamp(28px,3vw,44px);align-self:end}
.case__side .facts{margin-top:0}
.case__text{font-size:clamp(16px,1.2vw,19px);line-height:1.55;color:var(--fg-2)}
.case--r .case__side{grid-column:1/5;grid-row:4}
.case__img--contain img{object-fit:contain;background:var(--bg-2)}
.case--r .case__img img{aspect-ratio:1/1}
@media (max-width:900px){.case__side,.case--r .case__side{grid-column:1/-1;grid-row:auto;margin-top:32px}}

/* App */
.app{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);margin-top:var(--space-s);align-items:center}
.app__img{grid-column:3/6;margin:0;overflow:hidden;border-radius:clamp(22px,2.6vw,40px);background:var(--bg-2);border:1px solid var(--line)}
.app__img img{width:100%;height:auto;aspect-ratio:9/19.5;object-fit:cover;object-position:top}
.app__body{grid-column:7/12;display:flex;flex-direction:column;gap:24px}
.app__kicker{font-size:12.5px;color:var(--muted)}
.app__title{font-size:clamp(30px,3.6vw,60px);line-height:1;letter-spacing:-.04em;font-weight:500;max-width:14ch}
.app__text{font-size:clamp(17px,1.35vw,21px);line-height:1.5;color:var(--fg-2);max-width:38ch}
.app__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.app__list li{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--fg-2)}
.app__links{display:flex;flex-wrap:wrap;gap:12px}
.app__note{font-size:12px;color:var(--muted)}
@media (max-width:860px){.app__img{grid-column:2/-2;max-width:320px}.app__body{grid-column:1/-1;margin-top:48px}}

/* Musik */
.music__grid{margin-top:var(--space-s)}
.music__body{margin-top:var(--space-s);margin-left:clamp(0px,33vw,560px);display:flex;flex-direction:column;gap:1.3em;max-width:40ch}
.music__body p{font-size:clamp(18px,1.45vw,23px);line-height:1.5;color:var(--fg-2)}
.music__body p:first-child{color:var(--fg)}
.music__note{color:var(--muted)}
@media (max-width:760px){.music__body{margin-left:0}}

/* Kontakt */
.contact__text{margin-left:clamp(0px,33vw,560px);font-size:clamp(17px,1.35vw,21px);color:var(--fg-2)}
.contact__mail{user-select:text;border-bottom:1px solid var(--line);transition:border-color .3s}
.contact__mail:hover{border-color:var(--fg)}
@media (max-width:760px){.contact__text{margin-left:0}}
.about{padding-top:var(--space-s)}
.hero{min-height:100svh;padding-top:clamp(84px,9vw,120px);padding-bottom:clamp(40px,5vw,80px)}
.hero__portrait{max-width:min(880px,calc((100svh - 150px) * .8));width:100%;justify-self:center}
@media (max-width:900px){.hero{min-height:0}.hero__portrait{max-width:min(560px,100%)}}
.about__grid{margin-top:clamp(60px,7vw,120px)}
.app+.case{margin-top:var(--space)}
.app{margin-top:var(--space-s)}

/* =========================================================
   Stand 25.09. (2): ein Raster, ruhige Links, Unternehmen, Projekte
   ========================================================= */
:root{--g:clamp(20px,4vw,56px);--maxw:1360px}
main,.foot{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--g)}
.bar{padding-inline:max(var(--g),calc((100vw - var(--maxw)) / 2 + var(--g)))}
.foot{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
.foot .rule{margin:0}

/* Wörter nicht abschneiden (kursive Überhänge) */
@media (prefers-reduced-motion:no-preference){
  .js .split-words .w{padding-right:.12em;margin-right:-.12em;padding-left:.04em;margin-left:-.04em}
}

/* Ruhige Links: Farbe + Linie statt rollendem Text */
.roll{overflow:visible;position:relative}
.roll>span{transition:color .5s ease}
.roll:hover>span,.roll:focus-visible>span{transform:none}
.roll>span::after{content:"";top:auto;bottom:-3px;left:0;width:100%;height:1px;background:currentColor;opacity:.6;transform:scaleX(0);transform-origin:right center;transition:transform .7s var(--ease)}
.roll:hover>span::after,.roll:focus-visible>span::after{transform:scaleX(1);transform-origin:left center}
.foot__cols .roll>span,.nav .roll>span{color:var(--fg-2)}
.foot__cols .roll:hover>span,.nav .roll:hover>span{color:var(--fg)}
.btn.roll{overflow:hidden}
.btn.roll>span::after{display:none}
.btn{transition:background-color .5s ease,color .5s ease,border-color .5s ease}

/* Unternehmen */
.company__title{font-size:clamp(44px,8.4vw,140px);line-height:.95;padding-right:.1em}
.nfart{grid-column:1/-1;position:relative;margin:clamp(40px,5vw,80px) 0 0;aspect-ratio:1400/720;border:1px solid var(--line);overflow:hidden;background:var(--bg)}
.nfart svg{position:absolute;inset:0;width:100%;height:100%}
.nfart__ring{transform-box:fill-box;transform-origin:center}
.nfart__ring--a{transform:rotate(-18deg)}
.nfart__ring--b{transform:rotate(28deg)}
.nfart__ring--c{transform:rotate(72deg)}
@media (prefers-reduced-motion:no-preference){
  .nfart__ring--a{animation:ringA 38s linear infinite}
  .nfart__ring--b{animation:ringB 52s linear infinite}
  .nfart__ring--c{animation:ringC 70s linear infinite}
}
@keyframes ringA{to{transform:rotate(342deg)}}
@keyframes ringB{to{transform:rotate(-332deg)}}
@keyframes ringC{to{transform:rotate(432deg)}}
.nfart__text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:24px;margin:0}
.nfart__kicker{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.nfart__line{font-size:clamp(24px,3.6vw,58px);line-height:1.02;letter-spacing:-.035em;font-weight:500;max-width:16ch;color:var(--fg)}
@media (max-width:640px){.nfart{aspect-ratio:4/5}}
.company__body{grid-column:5/12}
.principles{list-style:none;margin:.4em 0 0;padding:0;border-top:1px solid var(--line)}
.principles li{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--fg-2)}
.founders{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,48px);margin-top:var(--space-s)}
.founder{margin:0;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(16px,2vw,28px);align-items:end}
.founder__img{aspect-ratio:4/5;overflow:hidden;background:var(--bg-2)}
.founder__img img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;filter:grayscale(1) contrast(1.05)}
.founder figcaption{display:flex;flex-direction:column;gap:8px;margin:0}
.founder__name{font-size:clamp(22px,2vw,30px);letter-spacing:-.025em;color:var(--fg)}
.founder__role{font-size:12.5px;color:var(--muted)}
.founder__text{font-size:15px;line-height:1.5;color:var(--fg-2);margin-top:6px}
@media (max-width:900px){.founders{grid-template-columns:1fr}}
@media (max-width:520px){.founder{grid-template-columns:1fr}}
.company>.label--sub{grid-column:1/-1;margin-top:var(--space-s);margin-bottom:clamp(28px,3vw,48px)}
.company .services__list{margin-top:0;list-style:none;padding:0}
.svc{width:34px;height:34px;color:var(--fg);margin-bottom:10px}
.services__list li{gap:10px;padding-top:22px}

/* CTA: ruhiger, kleiner */
.cta{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;margin-top:var(--space-s);padding:clamp(28px,3.4vw,48px) clamp(24px,3.4vw,52px);border:1px solid var(--line);border-radius:4px;background:linear-gradient(120deg,var(--bg-2),var(--bg))}
.cta__copy{display:flex;flex-direction:column;gap:10px;max-width:40ch}
.cta__q{font-size:clamp(22px,2.3vw,36px);line-height:1.1;letter-spacing:-.03em;font-weight:500}
.cta__a{font-size:15px;color:var(--fg-2)}
.cta .btn{grid-column:auto;grid-row:auto;justify-self:auto}
.btn--solid.roll>span{padding:15px 26px}

/* Projekte */
.case--app .case__phone{grid-column:2/6;margin:clamp(48px,6vw,96px) 0 0;justify-self:center;width:100%;max-width:360px}
.case__phone img{width:100%;height:auto;filter:drop-shadow(0 40px 60px rgba(0,0,0,.55))}
.js .case__phone.reveal-img img{clip-path:none}
.case--app .case__side{grid-column:7/12;align-self:center}
.case--world .case__world{grid-column:1/-1;margin:clamp(40px,5vw,80px) auto 0;width:min(100%,1100px)}
.case__world img{width:100%;height:auto}
.case--world .case__text--lead{grid-column:2/7;margin-top:clamp(40px,5vw,80px);font-size:clamp(18px,1.45vw,23px);line-height:1.5;color:var(--fg)}
.case--world .facts{grid-column:8/13;margin-top:clamp(40px,5vw,80px)}
.case--video .case__video{grid-column:2/6;margin:clamp(48px,6vw,96px) 0 0;position:relative;justify-self:center;width:100%;max-width:340px;border-radius:28px;overflow:hidden;border:1px solid var(--line);background:#000;box-shadow:0 40px 80px rgba(0,0,0,.5)}
.gas-video{display:block;width:100%;height:auto;aspect-ratio:720/1280;object-fit:cover;background:#000;filter:saturate(.9)}
.gas-sound{position:absolute;right:14px;bottom:14px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(235,232,226,.35);background:rgba(13,13,12,.6);color:var(--fg);display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background-color .4s}
.gas-sound:hover{background:rgba(13,13,12,.85)}
.gas-sound svg{width:18px;height:18px}
.gas-sound .gas-sound__on{display:none}
.gas-sound.on .gas-sound__on{display:inline}
.gas-sound.on .gas-sound__off{display:none}
.case--video .case__side{grid-column:7/12;align-self:center}
.case--app+.case,.case+.case{margin-top:var(--space)}
@media (max-width:900px){.case--app .case__phone,.case--app .case__side,.case--world .case__text--lead,.case--world .facts,.case--video .case__video,.case--video .case__side{grid-column:1/-1}.case--app .case__phone,.case--video .case__video{max-width:300px}}

/* Kontakt */
.contact__title{font-size:clamp(52px,10vw,168px);line-height:.92;padding-right:.1em}
.contact__row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-left:0;border-top:1px solid var(--line);padding-top:clamp(24px,3vw,40px)}
.contact__text{margin:0;font-size:clamp(17px,1.35vw,21px);color:var(--fg-2)}
.contact__btns{display:flex;gap:12px}
.icon-btn{width:58px;height:58px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--fg);transition:background-color .5s ease,color .5s ease,border-color .5s ease}
.icon-btn svg{width:22px;height:22px}
.icon-btn:hover,.icon-btn:focus-visible{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.cta__copy{max-width:none;flex:1 1 420px}.cta__q{max-width:26ch}

/* Stand 25.09. (3): Pianist, runde Gründerbilder, Welt kleiner */
.about__photo--draw{background:none;overflow:visible}
.about__photo--draw svg{display:block;width:100%;height:auto;color:var(--fg)}
.founder{grid-template-columns:auto minmax(0,1fr);align-items:center}
.founder__img{aspect-ratio:auto;background:none;overflow:visible}
.founder__img img{display:block;width:auto;height:auto;max-width:min(100%,260px);aspect-ratio:1/1;object-fit:cover;object-position:50% 25%;border-radius:50%;filter:none}
@media (max-width:520px){.founder{grid-template-columns:1fr}}
.case--world .case__world{grid-column:6/12;grid-row:4;margin:clamp(48px,6vw,96px) 0 0;width:100%;max-width:640px;justify-self:center}
.case__world img{-webkit-mask-image:radial-gradient(closest-side,#000 72%,transparent 100%);mask-image:radial-gradient(closest-side,#000 72%,transparent 100%)}
.case--world .case__side{grid-column:1/5;grid-row:4;align-self:center}
@media (max-width:900px){.case--world .case__world,.case--world .case__side{grid-column:1/-1;grid-row:auto}}
.founder{grid-template-columns:1fr;align-items:start;gap:24px}.founder__img img{max-width:min(100%,220px)}.founder figcaption{max-width:44ch}
@media (prefers-reduced-motion:no-preference){
  .js .drawing .draw{stroke-dashoffset:var(--len,1)}
  .js .drawing.in .draw,.js .hero.in .drawing .draw{stroke-dashoffset:0}
}
/* Mobil: nichts darf seitlich überstehen */
html{overflow-x:hidden}
.case__world{overflow:hidden}
.js .case__phone.reveal-img img{transform:none}

/* Abschnittsmarken größer */
.label{font-size:clamp(15px,1.25vw,19px);gap:18px;color:var(--fg)}
.label__n{font-size:clamp(19px,1.6vw,26px)}
.label::after{flex-basis:clamp(56px,8vw,140px)}
.label--sub{font-size:clamp(14px,1.1vw,17px);color:var(--fg-2)}

/* Mobil */
@media (max-width:760px){
  :root{--space:clamp(96px,26vw,140px);--space-s:clamp(56px,14vw,80px)}
  .hero{padding-top:88px;padding-bottom:24px}
  .hero__side{margin-top:28px;gap:16px}
  .hero__lede{font-size:clamp(30px,8.4vw,40px);max-width:none}
  .about__title,.projects__title{font-size:clamp(36px,10vw,52px)}
  .company__title{font-size:clamp(40px,11vw,60px)}
  .company__body{grid-column:1/-1}
  .company__body p,.about__p,.music__body p{font-size:17px}
  .nfart{aspect-ratio:4/5}
  .nfart__line{font-size:clamp(24px,7vw,32px)}
  .case__n{margin-bottom:6px}
  .case__name{font-size:clamp(44px,13vw,64px)}
  .case__claim{font-size:18px;margin-top:14px}
  .case--app .case__phone{max-width:240px}
  .case--video .case__video{max-width:260px}
  .case--world .case__world{max-width:320px}
  .services__list li{padding-top:18px}
  .cta{padding:24px 20px}
  .cta .btn{width:100%}
  .cta .btn>span{display:block;text-align:center}
  .music__title{font-size:clamp(40px,12vw,60px)}
  .music__grid{margin-top:48px}
  .contact__title{font-size:clamp(56px,17vw,84px)}
  .foot__claim{font-size:28px}
  .career__t{font-size:19px}
  .career__list li{grid-template-columns:72px 1fr;gap:12px}
}

/* ===== Stand 25.09. (4): Skizzen, Notenschleier, Brief ===== */
.sketch-svg{display:block;width:100%;height:auto;color:var(--fg)}
.company__sketch{grid-column:1/-1;margin:clamp(40px,5vw,80px) 0 0}
.company__tags{display:flex;justify-content:center;gap:clamp(18px,4vw,64px);margin-top:18px;font-size:clamp(13px,1.1vw,16px);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2)}
.company__tags span+span::before{content:"·";margin-right:clamp(18px,4vw,64px);color:var(--muted)}
.case__sketch{margin:clamp(48px,6vw,96px) 0 0}
.case--world .case__world{max-width:620px;overflow:visible}
.case--world .case__world img{display:none}
.case--snack .case__snack{grid-column:1/8;width:100%;max-width:720px;justify-self:start}
.case--snack .case__side{grid-column:8/13;align-self:center}
@media (max-width:900px){.case--snack .case__snack,.case--snack .case__side{grid-column:1/-1}}

/* Notenschleier zwischen Trompete und Flügel */
.music__grid{position:relative}
.music__item{position:relative;z-index:1}
.veil-wrap{position:absolute;left:-2%;right:-2%;top:6%;bottom:-8%;z-index:0;pointer-events:none;color:var(--fg);opacity:.75}
.veil{width:100%;height:100%;display:block;overflow:visible}
.js .veil__sym{opacity:0;transform:translateY(10px);transform-box:fill-box;transform-origin:center;transition:opacity .6s ease,transform .8s var(--ease)}
.js .veil__sym.on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .veil__sym{opacity:1;transform:none}}
@media (max-width:760px){.veil-wrap{top:14%;bottom:4%;opacity:.6}}

/* Kontakt im Kopf: Brief */
.mailfx{display:inline-flex;align-items:center;justify-self:end;color:#fff;padding:4px}
.mailfx svg{width:40px;height:30px;overflow:visible}
.mailfx__txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mailfx__letter{fill:#000;transform:translateY(5px);transition:transform .45s var(--ease) .12s}
.mailfx__lines{transform:translateY(5px);transition:transform .45s var(--ease) .12s;opacity:0}
.mailfx__body{fill:#000}
.mailfx__flap{fill:#000;transform-box:view-box;transform-origin:20px 11px;transition:transform .35s var(--ease)}
.mailfx__trail{opacity:0}
.mailfx:hover .mailfx__flap,.mailfx:focus-visible .mailfx__flap{transform:scaleY(-1)}
.mailfx:hover .mailfx__letter,.mailfx:focus-visible .mailfx__letter{transform:translateY(-8px)}
.mailfx:hover .mailfx__lines,.mailfx:focus-visible .mailfx__lines{transform:translateY(-8px);opacity:1}
.mailfx.sent .mailfx__env{animation:mailSend 1.1s var(--ease)}
.mailfx.sent .mailfx__trail{animation:mailTrail 1.1s ease}
@keyframes mailSend{0%{transform:none;opacity:1}45%{transform:translateX(34px) translateY(-4px);opacity:0}46%{transform:translateX(-26px);opacity:0}100%{transform:none;opacity:1}}
@keyframes mailTrail{0%,10%{opacity:0;transform:none}30%{opacity:.8;transform:translateX(18px)}45%{opacity:0;transform:translateX(30px)}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.mailfx *{transition:none!important;animation:none!important}}

/* Gründer mobil zentriert */
@media (max-width:900px){
  .founders{justify-items:center;text-align:center}
  .founder{justify-items:center}
  .founder figcaption{align-items:center;margin-inline:auto}
}
/* Brief: beim Hover öffnen, Brief zeigt sich, schließt und fliegt ab – kommt zurück */
.mailfx:hover .mailfx__flap,.mailfx:focus-visible .mailfx__flap{transform:none;animation:mfFlap 2s var(--ease) both}
.mailfx:hover .mailfx__letter,.mailfx:focus-visible .mailfx__letter{transform:translateY(5px);animation:mfLetter 2s var(--ease) both}
.mailfx:hover .mailfx__lines,.mailfx:focus-visible .mailfx__lines{animation:mfLines 2s var(--ease) both}
.mailfx:hover .mailfx__env,.mailfx:focus-visible .mailfx__env{animation:mfFly 2s var(--ease) both}
.mailfx:hover .mailfx__trail,.mailfx:focus-visible .mailfx__trail{animation:mfTrail 2s ease both}
@keyframes mfFlap{0%{transform:none}18%,46%{transform:scaleY(-1)}58%,100%{transform:none}}
@keyframes mfLetter{0%{transform:translateY(5px)}22%,40%{transform:translateY(-9px)}54%,100%{transform:translateY(5px)}}
@keyframes mfLines{0%{opacity:0;transform:translateY(5px)}22%,40%{opacity:1;transform:translateY(-9px)}54%,100%{opacity:0;transform:translateY(5px)}}
@keyframes mfFly{0%,58%{transform:none;opacity:1}76%{transform:translate(38px,-6px) rotate(-6deg);opacity:0}77%{transform:translateX(-24px);opacity:0}100%{transform:none;opacity:1}}
@keyframes mfTrail{0%,60%{opacity:0;transform:none}68%{opacity:.8;transform:translateX(14px)}78%,100%{opacity:0;transform:translateX(30px)}}

/* ===== Stand 25.09. (5) ===== */
/* Brief im Kopf: normales Briefformat */
.mailfx svg{width:30px;height:24px}
.mailfx__letter{transform:translateY(4px)}
.mailfx__lines{transform:translateY(4px)}
.mailfx__flap{transform-origin:15px 8px}
@keyframes mfLetter{0%{transform:translateY(4px)}22%,40%{transform:translateY(-8px)}54%,100%{transform:translateY(4px)}}
@keyframes mfLines{0%{opacity:0;transform:translateY(4px)}22%,40%{opacity:1;transform:translateY(-8px)}54%,100%{opacity:0;transform:translateY(4px)}}

/* Gründer: mehr Luft, mobil mittig */
.founders{column-gap:clamp(40px,7vw,140px);row-gap:clamp(64px,9vw,112px)}
.founder__img{display:flex}
@media (max-width:900px){.founder__img{justify-content:center;width:100%}.founder__img img{margin-inline:auto}}

/* NATURFACTOR-App größer */
.case--app .case__phone{grid-column:1/7;max-width:500px}
.case--app .case__side{grid-column:7/13}
@media (max-width:900px){.case--app .case__phone{grid-column:1/-1;max-width:min(100%,380px)}}

/* Zeichnungen: Skizzen ohne Rahmen */
.company__sketch svg,.case__sketch svg,.about__photo--draw svg{overflow:visible}

/* Fußbereich neu geordnet */
.foot__top{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:start}
.foot__cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);font-size:15px}
.foot__cols div{gap:12px}
.foot__label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
@media (max-width:900px){.foot__top{grid-template-columns:1fr;gap:48px}}
@media (max-width:640px){
  .foot__cols{grid-template-columns:1fr 1fr;row-gap:40px;column-gap:24px;font-size:16px}
  .foot__cols div:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:24px;row-gap:14px}
  .foot__cols div:first-child .foot__label{grid-column:1/-1;margin-bottom:0}
  .foot__cols div{gap:14px}
  .foot__bottom{flex-direction:column;align-items:flex-start;gap:8px}
}
@media (max-width:900px){.case--app .case__side{grid-column:1/-1}}

/* ===== Stand 25.09. (6) ===== */
/* NATURFACTOR-App als Skizze, am Desktop kleiner */
.case--app .case__phone{grid-column:2/6;max-width:320px;justify-self:center;filter:none}
@media (max-width:900px){.case--app .case__phone{grid-column:1/-1;max-width:260px}}

/* One World Fund: Skizze mittig, darunter Text und Fakten über die ganze Breite */
@media (min-width:901px){
  .case--world .case__world{grid-column:3/11;grid-row:auto;max-width:720px;justify-self:center}
  .case--world .case__side{grid-column:1/-1;grid-row:auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);margin-top:clamp(48px,5vw,80px)}
  .case--world .case__side .case__text{grid-column:1/7;font-size:clamp(18px,1.45vw,22px);color:var(--fg)}
  .case--world .case__side .facts{grid-column:1/-1;margin-top:clamp(40px,4vw,64px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);border-top:0}
  .case--world .case__side .facts>div{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);border-bottom:0;padding:18px 0 0}
  .case--world .case__side .facts dd{font-size:15px}
}
.sk-cover{fill:var(--bg);stroke:none}

/* ===== Stand 25.09. (7): Links, Store-Knöpfe, winkende Hand ===== */
.company__title a,.case__name a{transition:opacity .4s}
.company__title a:hover{opacity:.6}
.visit{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--fg-2);border-bottom:1px solid var(--line);padding-bottom:4px;transition:color .4s,border-color .4s,gap .4s var(--ease)}
.visit:hover{color:var(--fg);border-color:var(--fg);gap:16px}
.company>.visit{grid-column:1/-1;justify-self:start;margin-top:22px}
.case__visit{grid-column:2/9;justify-self:start;margin-top:18px}
@media (max-width:900px){.case__visit{grid-column:1/-1}}
.inline{border-bottom:1px solid var(--line);transition:border-color .4s}
.inline:hover{border-color:var(--fg)}
.store{display:inline-flex;align-items:center;gap:10px;padding:9px 18px 9px 14px;border:1px solid var(--fg);border-radius:10px;color:var(--fg);transition:background-color .4s,color .4s}
.store svg{width:22px;height:22px;flex:none}
.store span{display:flex;flex-direction:column;line-height:1.1;font-size:16px;font-weight:500;letter-spacing:-.01em}
.store small{font-size:10.5px;font-weight:400;letter-spacing:.02em;color:inherit;opacity:.75}
.store:hover{background:var(--fg);color:var(--bg)}
.foot__claim{display:flex;align-items:flex-end;gap:clamp(12px,1.5vw,24px)}
.wave{display:inline-block;width:clamp(56px,5.2vw,84px);flex:none;transform-origin:60% 90%}
.wave svg{display:block;width:100%;height:auto;color:var(--fg)}
@media (prefers-reduced-motion:no-preference){.wave.in{animation:wave 2.6s ease-in-out 1.6s 2}}
@keyframes wave{0%,100%{transform:rotate(0)}15%{transform:rotate(14deg)}30%{transform:rotate(-8deg)}45%{transform:rotate(14deg)}60%{transform:rotate(-4deg)}75%{transform:rotate(8deg)}}
.foot__claim{max-width:none}
.foot__claim>.split-words{max-width:none;white-space:nowrap}
@media (max-width:520px){.foot__claim>.split-words{white-space:normal;max-width:9ch}}
.foot__bottom a{color:var(--fg-2)}
.wave{width:clamp(64px,6.4vw,104px)}
.wave{width:clamp(70px,6.6vw,108px);transform-origin:50% 60%}
@media (prefers-reduced-motion:no-preference){.wave.in{animation:brezel 3s ease-in-out 2.4s 1}}
@keyframes brezel{0%,100%{transform:rotate(0)}30%{transform:rotate(-9deg)}60%{transform:rotate(6deg)}}
.case__lead{font-size:clamp(24px,2.4vw,38px);line-height:1.08;letter-spacing:-.03em;font-weight:500;color:var(--fg);max-width:18ch}
.case--app .app__kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.app__list b{font-weight:500;color:var(--fg)}
.case--app .case__side{gap:clamp(18px,2vw,28px)}
/* Projekt-Links als Knöpfe */
.visit{display:inline-flex;align-items:center;gap:14px;padding:12px 14px 12px 20px;border:1px solid var(--fg);border-radius:999px;color:var(--fg);font-size:15px;line-height:1;transition:background-color .45s ease,color .45s ease,gap .45s var(--ease)}
.visit__k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);transition:color .45s}
.visit__d{font-weight:500;letter-spacing:-.01em}
.visit__a{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--fg);color:var(--bg);font-size:14px;transition:transform .45s var(--ease),background-color .45s,color .45s}
.visit:hover,.visit:focus-visible{background:var(--fg);color:var(--bg);gap:18px}
.visit:hover .visit__k,.visit:focus-visible .visit__k{color:var(--bg);opacity:.6}
.visit:hover .visit__a,.visit:focus-visible .visit__a{background:var(--bg);color:var(--fg);transform:translateX(3px)}
.company>.visit,.case__visit{margin-top:28px}
@media (max-width:520px){.visit{font-size:14px;gap:10px;padding:10px 10px 10px 16px}.visit__k{display:none}}

/* Sprachumschalter */
.bar__right{justify-self:end;display:flex;align-items:center;gap:clamp(14px,2vw,26px)}
.lang{display:flex;align-items:center;gap:6px;font-size:12.5px;letter-spacing:.08em;color:#fff}
.lang span{opacity:.35}
.lang a{opacity:.5;transition:opacity .4s}
.lang a:hover,.lang a.on{opacity:1}
.lang a.on{border-bottom:1px solid currentColor}
@media (min-width:901px){.case--app .case__phone{grid-column:1/7;max-width:min(460px,100%);align-self:center;margin-top:clamp(48px,6vw,96px)}}

/* Privat */
.life{padding-bottom:var(--space)}
.life__title{font-size:clamp(52px,10vw,168px);line-height:.92;letter-spacing:-.055em;font-weight:500;padding-right:.1em}
.life__intro{margin-top:clamp(28px,3vw,44px);margin-left:clamp(0px,33vw,560px);font-size:clamp(18px,1.45vw,23px);line-height:1.5;color:var(--fg-2);max-width:40ch}
.life__list{list-style:none;margin:var(--space-s) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(16px,3vw,48px);border-top:1px solid var(--line)}
.life__list li{display:flex;align-items:baseline;gap:14px;padding:clamp(18px,2vw,28px) 0;border-bottom:1px solid var(--line)}
.life__n{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--muted);min-width:1.6em}
.life__t{font-size:clamp(24px,2.6vw,42px);line-height:1.05;letter-spacing:-.03em;transition:transform .6s var(--ease)}
.life__list li:hover .life__t{transform:translateX(8px)}
@media (max-width:900px){.life__list{grid-template-columns:1fr 1fr}.life__intro{margin-left:0}}
@media (max-width:520px){.life__list{grid-template-columns:1fr}}
@media (min-width:901px){.case--app .case__phone{max-width:min(380px,100%)}}
/* Kopfleiste rechts: Sprachumschalter und Brief auf einer Linie */
.bar__right{align-items:center;height:34px}
.lang{height:34px;line-height:1;align-items:center}
.lang a{display:inline-flex;align-items:center;height:34px;border-bottom:0;position:relative}
.lang a.on::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:currentColor}
.mailfx{height:34px;padding:0;align-items:center}
/* Aktiver Abschnitt in der Navigation */
.nav .roll>span{transition:color .4s,opacity .4s}
.nav .roll.is-active>span{color:#fff;opacity:1}
.nav .roll.is-active>span::after{transform:scaleX(1);transform-origin:left center;opacity:1}
.lang a.on::after{bottom:9px}
.lang a.on{border-bottom:0;text-decoration:none}
/* Brief optisch etwas höher */
.mailfx svg{transform:translateY(-3px)}
/* Mobil: Sprachumschalter mittig, Subfooter zentriert, Gründerbilder fest */
@media (max-width:760px){
  .lang{position:absolute;left:50%;transform:translateX(-50%)}
  .foot__bottom{align-items:center;text-align:center}
  .foot__bottom>span{justify-content:center}
}
.founder__img img{width:220px;height:220px;max-width:100%;object-fit:cover}
