/* The artist page (/artists, /de/kuenstler): a product page for the studio, on top of page.css. */
/* a product page for the studio. Everything reads without the effects;
   html.js switches the entrances on, and reduced motion gets the finished state at once. */
:root{--ease:cubic-bezier(.2,.7,.1,1);--night:#07110c;--quick:#B8C1BF;--glass:rgba(227,232,229,.06);--glass-line:rgba(227,232,229,.14)}
html{overflow-x:clip;-webkit-tap-highlight-color:transparent}
.v2{overflow:clip}
.in{max-width:1200px;margin:0 auto;padding:0 var(--gut)}
.v2 h1,.v2 h2,.v2 h3{margin:0}
.v2 h2{font-size:clamp(34px,4.6vw,60px);font-weight:620;font-stretch:112%;letter-spacing:-.03em;line-height:1.02;text-wrap:balance}
.v2 h1 em,.v2 h2 em{font-style:normal;font-weight:360;font-stretch:125%;letter-spacing:-.02em;color:var(--forest)}
.sec-head{max-width:720px;margin-bottom:clamp(36px,5vw,64px)}
.sec-head p:not(.kicker){margin:18px 0 0;font-size:19px;color:var(--ink-2);max-width:56ch}
.btn-p,.btn-g{display:inline-flex;align-items:center;gap:10px;padding:16px 24px;border-radius:6px;font-weight:600;text-decoration:none;
  transition:font-stretch .35s var(--ease),background .2s,border-color .2s,transform .2s var(--ease)}
.btn-p{background:var(--forest);color:var(--mist)}
.btn-g{border:1px solid rgba(15,26,22,.25);color:var(--ink)}
.btn-p:hover,.btn-g:hover{font-stretch:118%}
.btn-g:hover{border-color:var(--forest)}
.btn-p .arrow,.btn-g .arrow{transition:transform .3s var(--ease)}
.btn-p:hover .arrow{transform:translateX(4px)}
.btn-g:hover .arrow{transform:translateY(3px)}

/* ── hero ── */
.hero{position:relative;min-height:calc(100svh - 64px);display:flex;align-items:center;padding:clamp(40px,7vw,90px) 0 clamp(56px,7vw,90px)}
.hero .in{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(32px,5vw,80px);align-items:center}
.hero h1{font-size:clamp(42px,5.3vw,80px);white-space:nowrap;font-weight:620;font-stretch:112%;letter-spacing:-.035em;line-height:.98;margin-bottom:28px}
.hero h1 em{display:block}
.hero .lede{font-size:clamp(18px,1.6vw,21px);line-height:1.55;color:var(--ink-2);max-width:34em;margin:0 0 34px;text-wrap:pretty}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px}
.chip{display:inline-flex;gap:10px;align-items:center;margin:0;padding:8px 14px;border-radius:99px;background:var(--paper);font-size:15px;color:var(--ink-2);box-shadow:0 0 0 1px rgba(15,26,22,.08)}
.chip b{color:var(--ink)}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:#2E6C52;box-shadow:0 0 0 4px rgba(46,108,82,.16)}
.hero-phone{position:relative;justify-self:center;width:clamp(240px,25vw,330px);perspective:1200px}
.hero-phone .tilt{transform-style:preserve-3d;transition:transform .6s var(--ease)}
.hero-phone img{display:block;width:100%;height:auto;filter:drop-shadow(0 30px 40px rgba(14,42,31,.25))}
.hero-phone::before{content:"";position:absolute;inset:-18% -30%;z-index:-1;background:radial-gradient(closest-side,rgba(46,108,82,.22),rgba(46,108,82,0) 70%)}
/* the construction drawing behind the phone: guides along its edges, a diagonal at the eagle's
   wing angle, three circles in the golden ratio and crosshair marks, fading out around it */
.lines{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse var(--mrx,420px) var(--mry,560px) at var(--mx,75%) var(--my,50%),#000 58%,transparent 100%);
  mask-image:radial-gradient(ellipse var(--mrx,420px) var(--mry,560px) at var(--mx,75%) var(--my,50%),#000 58%,transparent 100%)}
.lines .g{fill:none;stroke:rgba(15,26,22,.3);stroke-width:1}
.lines .c{fill:none;stroke:rgba(15,26,22,.24);stroke-width:1}
.lines .d{fill:none;stroke:rgba(15,26,22,.34);stroke-width:1;stroke-dasharray:2 7}
.lines .x{fill:none;stroke:rgba(14,42,31,.75);stroke-width:1.2}
/* entrances */
html.js .hero h1{font-stretch:70%;opacity:0;transition:font-stretch 1.6s var(--ease),opacity .9s var(--ease)}
html.js .hero h1 em{font-stretch:90%;transition:font-stretch 1.8s var(--ease) .15s}
html.js .hero .lede,html.js .hero .actions,html.js .hero .chip{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
html.js .hero .lede{transition-delay:.35s}html.js .hero .actions{transition-delay:.5s}html.js .hero .chip{transition-delay:.65s}
html.js .hero-phone{opacity:0;transform:translateY(40px);transition:opacity 1.1s var(--ease) .3s,transform 1.4s var(--ease) .3s}
html.js .lines .g,html.js .lines .c{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 2.4s var(--ease) var(--wait,0s)}
html.js .lines .d,html.js .lines .x{opacity:0;transition:opacity 1.2s var(--ease) var(--wait,1.4s)}
html.ready .hero h1{font-stretch:112%;opacity:1}
html.ready .hero h1 em{font-stretch:125%}
html.ready .hero .lede,html.ready .hero .actions,html.ready .hero .chip{opacity:1;transform:none}
html.ready .hero-phone{opacity:1;transform:none}
html.ready .lines .g,html.ready .lines .c{stroke-dashoffset:0}
html.ready .lines .d,html.ready .lines .x{opacity:1}
.hero-phone .float{animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ── how: one phone stays, the steps scroll past it ── */
.how{padding:clamp(72px,10vw,140px) 0}
.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px)}
.step{min-height:78vh;display:flex;flex-direction:column;justify-content:center;max-width:470px;transition:opacity .5s var(--ease)}
html.js .step{opacity:.28}
html.js .step.on{opacity:1}
.step .num{font-weight:430;font-stretch:125%;font-size:13px;letter-spacing:.24em;color:var(--forest);margin-bottom:18px}
.step h3{font-size:clamp(26px,2.6vw,36px);font-weight:600;font-stretch:108%;letter-spacing:-.02em;line-height:1.1;margin-bottom:16px}
.step p{margin:0;font-size:18px;color:var(--ink-2)}
.step-img{display:none}
.stage{position:sticky;top:calc(50vh - min(34vw,560px)/2 - 8px);height:min(34vw,560px);align-self:start;display:flex;align-items:center;justify-content:center;margin-top:11vh}
.screens{position:relative;height:100%;aspect-ratio:600/1260}
.screens img{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 26px 36px rgba(14,42,31,.22));transition:opacity .7s var(--ease),transform .9s var(--ease)}
html.js .screens img{opacity:0;transform:translateY(24px) scale(.97)}
html.js .screens img.on{opacity:1;transform:none}
.dots{position:absolute;right:-28px;top:50%;transform:translateY(-50%);display:grid;gap:10px}
.dots i{width:6px;height:6px;border-radius:50%;background:rgba(15,26,22,.2);transition:background .3s,transform .3s}
.dots i.on{background:var(--forest);transform:scale(1.4)}
.how .small{margin-top:8px;color:var(--ink-2);font-size:14px}

/* ── everywhere: one show, three places ── */
.everywhere{position:relative;color:var(--mist);padding:clamp(80px,11vw,150px) 0;background:radial-gradient(1100px 620px at 22% 10%,#12372a 0%,rgba(18,55,42,0) 62%),radial-gradient(900px 600px at 90% 100%,#0d2a20 0%,rgba(13,42,32,0) 60%),var(--night)}
.everywhere .kicker{color:var(--quick)}
.everywhere .kicker::before{background:var(--quick)}
.everywhere h2 em{color:var(--quick)}
.everywhere .sec-head p:not(.kicker){color:rgba(227,232,229,.7)}
.flow{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(60px,10vw,160px);align-items:center}
.card{position:relative;z-index:1;padding:22px 24px;border-radius:14px;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(6px)}
.card small{display:block;font-weight:430;font-stretch:125%;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--quick);margin-bottom:10px}
.card b{display:block;font-size:20px;font-weight:600;line-height:1.25}
.card span{display:block;margin-top:6px;font-size:15px;color:rgba(227,232,229,.68)}
.src{max-width:400px;background:rgba(227,232,229,.1);border-color:rgba(227,232,229,.28)}
.src b{font-size:24px}
.src .pulse{position:absolute;inset:-1px;border-radius:14px;box-shadow:0 0 0 0 rgba(184,193,191,.35);pointer-events:none}
.flow.go .src .pulse{animation:pulse 2.8s var(--ease) 3}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(184,193,191,.35)}70%,100%{box-shadow:0 0 0 18px rgba(184,193,191,0)}}
.dests{display:grid;gap:18px}
.dest{transition:border-color .6s var(--ease),background .6s var(--ease),box-shadow .6s var(--ease),transform .6s var(--ease)}
html.js .dest{opacity:.45;transform:translateX(10px)}
html.js .dest.lit,.dest.lit{opacity:1;transform:none;border-color:rgba(184,193,191,.55);background:rgba(227,232,229,.09);box-shadow:0 0 40px rgba(46,108,82,.25)}
html.js .dest{transition:opacity .6s var(--ease),border-color .6s var(--ease),background .6s var(--ease),box-shadow .6s var(--ease),transform .6s var(--ease)}
.paths{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}
.paths path{fill:none;stroke:rgba(184,193,191,.5);stroke-width:1.2}
.paths circle{fill:#E3E8E5;filter:drop-shadow(0 0 6px rgba(227,232,229,.9))}

/* ── made for: eight kinds of artists, a hairline grid ── */
.for{padding:clamp(64px,9vw,120px) 0 0}
.who{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.who li{display:flex;flex-direction:column;gap:6px;padding:26px 22px 28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .3s var(--ease)}
.who li:hover{background:var(--paper)}
.who svg{width:30px;height:30px;margin-bottom:14px;fill:none;stroke:var(--forest);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .5s var(--ease)}
.who li:hover svg{transform:translateY(-3px)}
.who b{font-size:17px;font-weight:600;font-stretch:106%;line-height:1.25}
.who span{font-size:15px;color:var(--ink-2)}
/* the cards fade in place, so the hairlines stay joined */
html.js .who li[data-reveal].seen{animation-name:fadein}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.who li:nth-child(4n+2).seen{animation-delay:.06s}.who li:nth-child(4n+3).seen{animation-delay:.12s}.who li:nth-child(4n+4).seen{animation-delay:.18s}

/* ── the rest ── */
.rest{padding:clamp(80px,11vw,150px) 0}
.bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"vis vid blog" "vis gal txt" "book fast fast";gap:16px}
.tile{position:relative;padding:26px 24px 24px;border-radius:16px;background:var(--paper);box-shadow:0 0 0 1px rgba(15,26,22,.06);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.tile:hover{transform:translateY(-4px);box-shadow:0 0 0 1px rgba(15,26,22,.08),0 18px 40px rgba(14,42,31,.1)}
.tile svg.ic{width:28px;height:28px;stroke:var(--forest);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:22px}
.tile h3{font-size:20px;font-weight:600;font-stretch:106%;margin-bottom:8px}
.tile p{margin:0;font-size:16px;color:var(--ink-2)}
.t-vis{grid-area:vis;display:flex;flex-direction:column;background:var(--forest);color:var(--mist)}
.t-vis svg.ic{stroke:var(--quick)}
.t-vis p{color:rgba(227,232,229,.72)}
.t-vis .vbars{margin-top:auto;padding-top:28px;display:grid;gap:12px}
.vbar{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:12px;font-size:13px;color:rgba(227,232,229,.72)}
.vbar i{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,#B8C1BF,#E3E8E5);width:var(--w);transition:width 1.4s var(--ease)}
html.js .t-vis:not(.seen) .vbar i{width:0}
.vbar:nth-child(2) i{transition-delay:.12s}.vbar:nth-child(3) i{transition-delay:.24s}.vbar:nth-child(4) i{transition-delay:.36s}
.t-vis .tag{margin-top:18px;font-size:12px;color:rgba(227,232,229,.5)}
.t-vid{grid-area:vid}.t-blog{grid-area:blog}.t-txt{grid-area:txt}.t-book{grid-area:book}.t-gal{grid-area:gal}
.t-fast{grid-area:fast;display:flex;align-items:center;gap:22px}
.t-fast svg.ic{margin:0;flex:none}

/* ── live ── */
.live{padding:clamp(40px,6vw,80px) 0 clamp(80px,11vw,150px)}
.browser{display:block;border-radius:14px;overflow:hidden;background:#111;box-shadow:0 0 0 1px rgba(15,26,22,.12),0 40px 80px rgba(14,42,31,.18);text-decoration:none;transform-origin:50% 0;transition:transform 1.2s var(--ease),opacity 1s var(--ease)}
html.js .browser:not(.seen){opacity:0;transform:perspective(1400px) rotateX(14deg) translateY(60px)}
.chrome{display:flex;align-items:center;gap:7px;height:38px;padding:0 14px;background:#1b1d1c}
.chrome i{width:10px;height:10px;border-radius:50%;background:#3a3d3b}
.chrome span{margin-left:14px;padding:4px 14px;border-radius:6px;background:#262927;color:#b8c1bf;font-size:12px}
.browser img{display:block;width:100%;height:auto}
.live .more{display:inline-flex;gap:8px;margin-top:22px;color:var(--ink);font-weight:600}

/* ── prices ── */
.prices{padding:0 0 clamp(80px,11vw,150px)}
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.plan{padding:34px 30px 30px;border-radius:18px;background:var(--paper);box-shadow:0 0 0 1px rgba(15,26,22,.06)}
.plan h3{font-size:18px;font-weight:600;margin-bottom:22px}
.plan .amt{margin:0 0 22px;font-size:clamp(52px,6vw,76px);font-weight:620;font-stretch:112%;letter-spacing:-.04em;line-height:1}
.plan .amt small{display:block;margin-bottom:8px;font-size:14px;font-weight:430;letter-spacing:0;color:inherit;opacity:.65;font-stretch:100%}
.plan .amt i{font-style:normal;font-size:18px;font-weight:430;letter-spacing:0;opacity:.7;margin-left:6px}
.plan ul{margin:0;padding:0;list-style:none;display:grid;gap:10px;font-size:16px}
.plan li{display:flex;gap:10px}
.plan li::before{content:"";flex:none;width:16px;height:16px;margin-top:4px;border-radius:50%;background:radial-gradient(circle,currentColor 0 3px,transparent 3.5px);opacity:.6;box-shadow:inset 0 0 0 1px currentColor}
.plan-main{background:var(--forest);color:var(--mist)}
.plan p{margin:0;color:var(--ink-2)}
.plan .amt{color:inherit}
.plan.alt .amt{font-size:clamp(40px,4.6vw,58px)}
.prices .fine{margin:18px 0 0;font-size:14px;color:var(--ink-2)}

/* ── start ── */
.start{padding:0 0 clamp(80px,11vw,150px)}
.timeline{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;margin:0;padding:0;list-style:none;counter-reset:s}
.timeline::before{content:"";position:absolute;left:0;right:0;top:15px;height:1px;background:var(--forest);transform-origin:0 50%;transition:transform 1.6s var(--ease)}
html.js .timeline:not(.seen)::before{transform:scaleX(0)}
.timeline li{position:relative;counter-increment:s;padding-top:48px}
.timeline li::before{content:counter(s,decimal-leading-zero);position:absolute;top:0;left:0;width:31px;height:31px;border-radius:50%;background:var(--mist);box-shadow:inset 0 0 0 1px var(--forest);display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--forest)}
.timeline b{display:block;font-weight:600;margin-bottom:6px}
.timeline span{font-size:15px;color:var(--ink-2)}

/* ── questions ── */
.faq2{padding:0 0 clamp(80px,11vw,150px)}
.faq2 .in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px)}
.faq2 details{border-top:1px solid var(--line)}
.faq2 details:last-child{border-bottom:1px solid var(--line)}
.faq2 summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:22px 0;font-size:19px;font-weight:600}
.faq2 summary::-webkit-details-marker{display:none}
.faq2 summary::after{content:"";flex:none;width:14px;height:14px;margin-top:6px;background:linear-gradient(var(--forest),var(--forest)) center/14px 1.5px no-repeat,linear-gradient(var(--forest),var(--forest)) center/1.5px 14px no-repeat;transition:transform .35s var(--ease)}
.faq2 details[open] summary::after{transform:rotate(45deg)}
.faq2 details p{margin:0 0 22px;color:var(--ink-2);max-width:56ch}

/* ── closing ── */
.close{position:relative;overflow:hidden;color:var(--mist);text-align:center;padding:clamp(90px,12vw,170px) 0;background:radial-gradient(900px 500px at 50% 0%,#12372a 0%,rgba(18,55,42,0) 65%),var(--night)}
.close .mark-bg{position:absolute;left:50%;top:50%;width:min(1100px,140vw);transform:translate(-50%,-46%);color:rgba(227,232,229,.045);pointer-events:none}
.close .in{position:relative}
.close h2{font-size:clamp(38px,5.6vw,76px)}
.close h2 em{color:var(--quick)}
.close p{margin:22px auto 36px;max-width:40em;font-size:19px;color:rgba(227,232,229,.72)}
.close .btn-p{background:var(--mist);color:var(--forest)}

/* reveal for headings and tiles */
/* (an animation on `translate`, so a tile's own hover transform stays quick) */
html.js [data-reveal]:not(.seen){opacity:0}
html.js [data-reveal].seen{animation:rise 1.1s var(--ease) both}
@keyframes rise{from{opacity:0;translate:0 26px}to{opacity:1;translate:0 0}}
.bento .tile:nth-child(2).seen{animation-delay:.08s}.bento .tile:nth-child(3).seen{animation-delay:.16s}.bento .tile:nth-child(4).seen{animation-delay:.12s}.bento .tile:nth-child(5).seen{animation-delay:.2s}

/* ── smaller screens ── */
@media (max-width:900px){
  .hero{min-height:0}
  .hero .in{grid-template-columns:1fr}
  .hero h1{white-space:normal;font-size:clamp(40px,10.5vw,64px)}
  .hero-phone{width:min(68vw,300px);margin-top:12px}
  .story{display:block}
  .stage{display:none}
  .step{min-height:0;margin-bottom:72px;max-width:none}
  html.js .step{opacity:1}
  .step-img{display:block;width:min(70vw,300px);height:auto;margin:30px auto 0;filter:drop-shadow(0 22px 30px rgba(14,42,31,.2))}
  .step[data-i="0"] .step-img{display:none} /* the hero already shows this screen */
  .flow{grid-template-columns:1fr;gap:56px}
  .src{max-width:none}
  .dests{padding-left:30px}
  .bento{grid-template-columns:1fr 1fr;grid-template-areas:"vis vis" "vid blog" "gal txt" "book fast"}
  .plans{grid-template-columns:1fr}
  .timeline{grid-template-columns:1fr;gap:26px}
  .timeline::before{left:15px;right:auto;top:0;bottom:0;width:1px;height:auto;transform-origin:50% 0}
  html.js .timeline:not(.seen)::before{transform:scaleY(0)}
  .timeline li{padding:4px 0 0 52px}
  .faq2 .in{grid-template-columns:1fr}
  .who{grid-template-columns:repeat(2,minmax(0,1fr))}
  .who li{padding:20px 16px 22px}
}
@media (max-width:560px){
  /* phones: one compact row per kind of artist, the icon beside the text */
  .who{grid-template-columns:1fr}
  .who li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:2px 16px;padding:16px 16px 17px}
  .who svg{grid-row:span 2;margin:2px 0 0}
  .who b{font-size:16px}
  .who span{font-size:14px}
}
@media (max-width:560px){
  /* phones: the small tiles become compact rows, the icon beside the text */
  .bento{grid-template-columns:1fr;grid-template-areas:"vis" "vid" "blog" "gal" "txt" "book" "fast";gap:10px}
  .tile:not(.t-vis){display:grid;grid-template-columns:28px minmax(0,1fr);gap:0 16px;align-items:start;padding:20px 20px 20px 18px}
  .tile:not(.t-vis) svg.ic{grid-row:span 2;margin:1px 0 0}
  .tile:not(.t-vis) h3{font-size:18px;margin-bottom:4px}
  .tile:not(.t-vis) p{font-size:15px}
  .t-fast > div{min-width:0}
}
/* small phones: the language switch keeps its room in the header (the page has its own contact buttons) */
@media (max-width:380px){.bar nav a[href$="#contact"]{display:none}}
/* the bar on the narrowest phones: brand, contact and language in one row */
@media (max-width:400px){.bar-in{gap:10px}.bar nav{gap:10px;font-size:13px}.bar nav .lang{padding-left:10px}.wordmark{letter-spacing:.03em}}
@media (prefers-reduced-motion:reduce){
  html.js *,html.js *::before{transition:none!important;animation:none!important}
}
