/* O&O 3D Druck: the flyer's look. Navy ground, orange and sky-blue accents, rounded bordered panels, heavy uppercase headings. */
:root{
  --navy:#0E2A47; --navy-2:#153A62; --panel:#0B2340; --line:#1F4A78;
  --orange:#E6782A; --sky:#3F8ED8; --cream:#FFF6E3; --white:#F4F8FC; --muted:#B9CBE0;
  --font:'Nunito','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 100%);color:var(--white);font-family:var(--font);line-height:1.5;font-size:17px}
img{max-width:100%;height:auto;display:block}
a{color:var(--sky)}
h1,h2,h3{margin:0;line-height:1.1;text-wrap:balance}
h2{font-size:clamp(26px,4vw,38px);text-transform:uppercase;letter-spacing:1px;color:var(--orange);font-weight:900}
h3{font-size:20px;font-weight:800;color:var(--sky)}
p{margin:0}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:rgba(14,42,71,.92);backdrop-filter:blur(6px);border-bottom:2px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;color:var(--white);text-decoration:none;font-size:22px;font-weight:900;letter-spacing:1px;text-transform:uppercase}
.brand b{color:var(--sky)}
.brand b i{color:var(--white);font-style:normal}
.brand em{color:var(--orange);font-style:normal}
.mark{width:42px;height:42px;flex:none}
.top nav{display:flex;gap:18px;flex-wrap:wrap}
.top nav a{color:var(--white);text-decoration:none;font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.5px}
.top nav a:hover,.top nav a:focus-visible{color:var(--orange)}
.top .lang{gap:4px}
.top .lang a{padding:4px 7px;border-radius:6px;font-size:13px;color:var(--muted)}
.top .lang a[aria-current]{background:var(--sky);color:var(--navy)}
main{max-width:1180px;margin-inline:auto;padding-inline:20px}
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:center;padding-block:48px 40px}
.eyebrow{color:var(--sky);font-weight:800;text-transform:uppercase;letter-spacing:2px;font-size:14px}
h1{font-size:clamp(34px,6vw,64px);font-weight:900;text-transform:uppercase;color:var(--white);margin-block:10px 16px}
h1::after{content:"";display:block;width:90px;height:6px;background:var(--orange);border-radius:3px;margin-top:14px}
.lead{font-size:19px;color:var(--muted);max-width:52ch}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-block:24px 12px}
.btn{display:inline-block;padding:14px 22px;border-radius:999px;font-weight:800;text-decoration:none;text-transform:uppercase;letter-spacing:.5px;font-size:15px;border:2px solid transparent}
.btn-primary{background:var(--orange);color:#fff;border-color:var(--orange)}
.btn-primary:hover,.btn-primary:focus-visible{background:#ff8534}
.btn-ghost{color:var(--white);border-color:var(--sky)}
.btn-ghost:hover,.btn-ghost:focus-visible{background:rgba(47,182,234,.15)}
.fine{font-size:14px;color:var(--muted)}
.hero-logo{margin:0;display:grid;place-items:center;padding:clamp(20px,4vw,40px);border:3px solid var(--sky);border-radius:22px;background:radial-gradient(circle at 50% 50%,rgba(255,236,190,.22),transparent 62%),var(--panel);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.hero-logo .logo{width:min(100%,380px);height:auto;filter:drop-shadow(0 0 28px rgba(255,236,190,.35))}
.block{padding-block:48px;border-top:2px solid var(--line)}
.intro{color:var(--muted);max-width:70ch;margin-block:10px 28px}
.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--panel);border:2px solid var(--line);border-radius:18px;overflow:clip;display:flex;flex-direction:column;min-width:0}
.card:nth-child(odd){border-color:var(--orange)}
.card:nth-child(even){border-color:var(--sky)}
.card img{aspect-ratio:1/1;object-fit:cover;width:100%}
.card h3{padding:16px 18px 0}
.card p{padding:6px 18px 0;color:var(--muted);font-size:15px}
.card .ask{margin:14px 18px 18px;margin-top:auto;align-self:flex-start;padding:10px 16px;border-radius:999px;background:var(--orange);color:#fff;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.5px;text-decoration:none}
.card p:last-of-type{margin-bottom:14px}
.card .credit{font-size:12px}
.card .credit a{color:var(--muted)}
.card .ask:hover,.card .ask:focus-visible{background:#ff8534}
.gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.gallery-item{background:var(--panel);border:2px solid var(--line);border-radius:18px;overflow:clip}
.gallery-item video,.gallery-item img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:#000}
.gallery-caption{padding:12px 16px 16px}
.gallery-caption p{color:var(--muted);font-size:15px;margin-top:6px}
.tag{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--orange);color:#fff;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.note{margin-top:24px;font-size:14px;color:var(--muted);border:2px dashed var(--line);border-radius:14px;padding:12px 16px}
.alt{background:var(--panel);margin-inline:-20px;padding-inline:20px;border-radius:22px;border:2px solid var(--line)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:s}
.steps li{position:relative;padding:22px 22px 22px 22px;border-radius:18px;border:2px solid var(--orange);background:var(--navy)}
.steps .num{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--orange);color:#fff;font-weight:900;margin-bottom:10px}
.steps p{color:var(--muted);margin-top:6px;font-size:15px}
.about{display:grid;grid-template-columns:1fr 1.3fr;gap:32px;align-items:center}
.about figure{margin:0;border:3px solid var(--orange);border-radius:22px;overflow:hidden}
.about figure img{aspect-ratio:4/5;object-fit:cover;width:100%}
.about p{margin-top:12px;color:var(--muted)}
.contact-row{display:flex;gap:12px;flex-wrap:wrap;margin-block:8px 14px}
.foot{margin-top:40px;padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));border-top:2px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.foot nav{display:flex;gap:16px}
.foot a{color:var(--sky);text-decoration:none;font-weight:700}
.foot .social{width:100%;justify-content:center;gap:14px;order:-1;margin-bottom:6px}
.social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:2px solid var(--line);color:var(--white);transition:background-color .15s ease,border-color .15s ease,transform .15s ease}
.social a:hover,.social a:focus-visible{background:var(--orange);border-color:var(--orange);transform:translateY(-2px)}
.social svg{width:22px;height:22px;fill:currentColor}
.legal{max-width:760px;padding-block:40px}
.legal h1{font-size:clamp(28px,4vw,40px)}
.legal h1::after{width:60px}
.legal h2{font-size:20px;text-transform:none;letter-spacing:0;color:var(--sky);margin-top:28px}
.legal p,.legal li{color:var(--muted);margin-top:8px}
.legal ul{padding-left:20px}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
@media (max-width:860px){
  .hero,.about{grid-template-columns:1fr}
  .grid,.steps{grid-template-columns:repeat(2,1fr)}
  .hero{padding-block:20px 32px;gap:20px}
  .hero-logo{order:-1;justify-self:center;padding:14px 26px;border-width:2px}
  .hero-logo .logo{width:min(52vw,230px)}
}
@media (max-width:560px){
  .grid,.steps{grid-template-columns:1fr}
  .top{flex-wrap:wrap;gap:6px 10px;padding:8px 14px}
  .brand{font-size:18px;gap:8px}
  .mark{width:34px;height:34px}
  .top .lang{order:2;margin-left:auto}
  .top nav:not(.lang){order:3;width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:10px;padding-bottom:2px}
  .top nav:not(.lang)::-webkit-scrollbar{display:none}
  .top nav:not(.lang) a{font-size:12.5px;letter-spacing:.2px;white-space:nowrap}
  .eyebrow{font-size:12px;letter-spacing:1.5px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* 3D-print motion: the logo prints its layers, the header shows scroll as print progress, cards tilt under the mouse. */
.logo .nozzle{animation:nozzle 2.6s .3s linear both}
.logo .bar{transform-box:fill-box;transform-origin:0 50%}
.logo .b3{animation:layer3 2.6s .3s linear both}
.logo .b2{animation:layer2 2.6s .3s linear both}
.logo .b1{animation:layer1 2.6s .3s linear both}
.logo .logo-rest{animation:logo-rest 2.6s .3s ease-out both}
@keyframes nozzle{0%{transform:translate(-76px,48px)}25%{transform:translate(76px,48px)}30%{transform:translate(-52px,28px)}50%{transform:translate(52px,28px)}55%{transform:translate(-28px,8px)}70%{transform:translate(28px,8px)}80%,100%{transform:translate(0,0)}}
@keyframes layer3{0%{transform:scaleX(0)}25%,100%{transform:scaleX(1)}}
@keyframes layer2{0%,30%{transform:scaleX(0)}50%,100%{transform:scaleX(1)}}
@keyframes layer1{0%,55%{transform:scaleX(0)}70%,100%{transform:scaleX(1)}}
@keyframes logo-rest{0%,72%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}


.top::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:linear-gradient(90deg,var(--orange),#ffb067);transform-origin:0 50%;transform:scaleX(var(--druck,0))}
.druck{display:none}
.js .druck{display:inline-block;margin-left:auto;padding:3px 8px;border:1px solid var(--line);border-radius:6px;color:var(--orange);font-size:12px;font-weight:800;letter-spacing:.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.druck.fertig{color:var(--navy);background:var(--orange);border-color:var(--orange)}

.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out;will-change:transform}
.card.tilt::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.16),transparent 55%);opacity:var(--glare,0);transition:opacity .25s ease}
.card{position:relative}

.btn-primary,.card .ask{transition:transform .15s ease,background-color .15s ease}
.btn-primary:hover,.btn-primary:focus-visible,.card .ask:hover,.card .ask:focus-visible{transform:translateY(-1px);background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.2) 0 1px,transparent 1px 4px)}

@media (max-width:860px){.druck{display:none!important}}
@media (prefers-reduced-motion:reduce){
  .logo *{animation:none!important}
  .tilt{transform:none!important}
  .btn-primary:hover,.card .ask:hover{transform:none}
}
