

:root{

  --ink:      #1A1813;
  --ink-2:    #37342B;
  --ink-soft: #6A655A;
  --paper:    #F4F1EA;
  --paper-2:  #ECE7DC;
  --paper-3:  #E3DDCF;
  --line:     #DCD5C7;

  --accent:      #B24421;
  --accent-ink:  #9A3A1B;
  --accent-wash: rgba(178,68,33,.10);

  --overlay:  rgba(20,18,14,.55);
  --maxw:     1240px;
  --gutter:   clamp(1.25rem, 5vw, 4.5rem);
  --pad-y:    clamp(5.5rem, 11vw, 11rem);

  --radius:   0px;
  --shadow:   0 24px 60px -28px rgba(26,24,19,.45);

  --display:  'Bricolage Grotesque', 'Segoe UI', system-ui, sans-serif;
  --sans:     'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mono:     ui-monospace, 'SFMono-Regular', 'Menlo', monospace;
  --ease:     cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:clamp(1.0625rem, 0.94rem + 0.42vw, 1.1875rem);
  line-height:1.68;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--accent-ink); text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
::selection{ background:var(--accent); color:#fff; }

h1,h2,h3{
  font-family:var(--display);
  font-weight:600;
  line-height:1.02;
  letter-spacing:-.025em;
  margin:0 0 .5em;
  text-wrap:balance;
  color:var(--ink);
}
h1{ font-size:clamp(2.9rem, 1.7rem + 5vw, 6.25rem); letter-spacing:-.035em; line-height:.98; }
h2{ font-size:clamp(2.05rem, 1.4rem + 2.7vw, 3.75rem); }
h3{ font-size:clamp(1.35rem, 1.15rem + 1vw, 1.75rem); letter-spacing:-.02em; line-height:1.1; }
p{ margin:0 0 1.2em; max-width:64ch; text-wrap:pretty; }
strong{ font-weight:600; color:var(--ink); }

.eyebrow{
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--accent-ink);
  margin:0 0 1.25rem;
  display:inline-flex;
  align-items:center;
  gap:.7rem;
}

.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--pad-y); }
.section--tight{ padding-block:clamp(3.5rem,7vw,6rem); }
.lead{ font-size:1.22em; line-height:1.55; color:var(--ink-soft); max-width:52ch; }
.center{ text-align:center; }
.visually-hidden{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:.5rem; top:-3.5rem; z-index:1000;
  background:var(--ink); color:var(--paper); padding:.7rem 1.2rem; font-weight:600;
  transition:top .2s var(--ease);
}
.skip-link:focus{ top:.5rem; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background .5s var(--ease), box-shadow .5s var(--ease), backdrop-filter .5s var(--ease);
}
.site-header__inner{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  padding-block:1.05rem;
}
.brand{ display:inline-flex; align-items:center; flex:0 0 auto; }
.brand img{
  max-height:clamp(46px,4.8vw,60px); width:auto;
  transition:filter .4s var(--ease);
  filter:drop-shadow(0 2px 8px rgba(26,24,19,.22));
}
.brand img.brand__white{
  filter:drop-shadow(0 4px 14px rgba(0,0,0,.55)) drop-shadow(0 1px 3px rgba(0,0,0,.45));
}
.header-solid{
  background:var(--paper);
  background:color-mix(in srgb, var(--paper) 82%, transparent);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  box-shadow:0 1px 0 var(--line);
}

.brand--dual .brand__main{ display:none; }
.brand--dual .brand__white{ display:block; }
.header-solid .brand--dual .brand__white{ display:none; }
.header-solid .brand--dual .brand__main{ display:block; }

.nav{ display:flex; align-items:center; gap:clamp(1rem,2.5vw,2.4rem); }
.nav__list{ display:flex; align-items:center; gap:clamp(1rem,2.2vw,2.1rem); }
.nav__link{
  position:relative; color:rgba(255,255,255,.92); font-size:.86rem; font-weight:500;
  letter-spacing:.04em; padding:.4rem 0; background:none; border:0;
  transition:color .3s var(--ease);
}
.header-solid .nav__link{ color:var(--ink); }
.nav__link:hover{ color:#fff; }
.header-solid .nav__link:hover{ color:var(--accent-ink); }
.nav__link::after{
  content:""; position:absolute; left:0; bottom:0; height:1.5px; width:100%;
  background:var(--accent); transform:scaleX(0); transform-origin:left;
  transition:transform .4s var(--ease-out);
}
.nav__link:hover::after,
.nav__link[aria-current="page"]::after,
.nav__link[aria-expanded="true"]::after{ transform:scaleX(1); }

.has-drop{ position:relative; }
.drop{
  position:absolute; top:calc(100% + .7rem); left:50%; transform:translateX(-50%) translateY(6px);
  min-width:200px; background:var(--paper); border:1px solid var(--line);
  padding:.5rem; opacity:0; visibility:hidden;
  transition:opacity .25s var(--ease), transform .25s var(--ease);
  box-shadow:var(--shadow);
}
.has-drop:hover .drop,
.has-drop:focus-within .drop,
.drop[data-open="true"]{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.drop a{
  display:block; padding:.6rem .85rem; color:var(--ink); font-size:.9rem; font-weight:500;
  transition:background .2s var(--ease), color .2s var(--ease);
}
.drop a:hover{ background:var(--paper-2); color:var(--accent-ink); }

.btn-buchen{
  background:var(--ink); color:var(--paper);
  text-transform:uppercase; letter-spacing:.16em; font-size:.7rem; font-weight:600;
  padding:.9rem 1.5rem; border:1px solid var(--ink); border-radius:var(--radius);
  transition:background .3s var(--ease), color .3s var(--ease), transform .15s var(--ease), box-shadow .3s var(--ease);
}
.btn-buchen:hover{ background:var(--accent); border-color:var(--accent); color:#fff; box-shadow:var(--shadow); }
.btn-buchen:active{ transform:translateY(1px); }

.nav-toggle{
  display:none; width:44px; height:44px; border:0; background:none; position:relative; z-index:140;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after{
  content:""; position:absolute; left:9px; right:9px; height:2px; background:#fff;
  transition:transform .35s var(--ease-out), opacity .2s var(--ease), background .3s var(--ease);
}
.header-solid .nav-toggle span,
.header-solid .nav-toggle span::before,
.header-solid .nav-toggle span::after{ background:var(--ink); }
.nav-toggle span{ top:21px; }
.nav-toggle span::before{ top:-7px; }
.nav-toggle span::after{ top:7px; }
body.menu-open .nav-toggle span{ background:transparent; }
body.menu-open .nav-toggle span::before{ transform:translateY(7px) rotate(45deg); background:var(--ink); }
body.menu-open .nav-toggle span::after{ transform:translateY(-7px) rotate(-45deg); background:var(--ink); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  text-transform:uppercase; letter-spacing:.15em; white-space:nowrap;
  font-size:.72rem; font-weight:600; padding:1.05rem 2rem;
  border:1px solid var(--ink); border-radius:var(--radius);
  background:transparent; color:var(--ink);
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .15s var(--ease), box-shadow .3s var(--ease);
}
.btn:active{ transform:translateY(1px); }
.btn--solid{ background:var(--ink); color:var(--paper); }
.btn--solid:hover{ background:var(--accent); border-color:var(--accent); color:#fff; box-shadow:var(--shadow); }
.btn--ghost:hover{ background:var(--ink); color:var(--paper); }

.link-underline{
  position:relative; color:var(--accent-ink); font-weight:600;
}
.link-underline::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1.5px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:left;
  transition:transform .35s var(--ease-out);
}
.link-underline:hover::after{ transform:scaleX(1); }

.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  color:#fff; overflow:hidden;
}
.hero__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
  animation:heroZoom 18s var(--ease-out) both;
}
@keyframes heroZoom{ from{ transform:scale(1.08); } to{ transform:scale(1); } }
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(20,18,14,.28) 0%, rgba(20,18,14,.08) 38%, rgba(20,18,14,.78) 100%),
    radial-gradient(120% 80% at 15% 100%, rgba(20,18,14,.35), transparent 60%);
}
.hero__inner{ padding-bottom:clamp(4rem,9vw,7.5rem); padding-top:8rem; max-width:none; }
.hero .eyebrow{ color:rgba(255,255,255,.9); }
.hero .eyebrow::before{ background:currentColor; }
.hero h1{ color:#fff; max-width:15ch; margin-bottom:.35em; }
.hero__claim{ font-size:1.24em; line-height:1.5; max-width:44ch; color:rgba(255,255,255,.94); }
.hero__cta{ margin-top:2rem; display:flex; gap:1rem; flex-wrap:wrap; }
.hero .btn{ border-color:rgba(255,255,255,.85); color:#fff; }
.hero .btn--solid{ background:#fff; color:var(--ink); border-color:#fff; }
.hero .btn--solid:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.hero .btn--ghost:hover{ background:rgba(255,255,255,.14); border-color:#fff; }

.hero .eyebrow,.hero h1,.hero__claim,.hero__cta{
  opacity:0; transform:translateY(22px); animation:heroUp .9s var(--ease-out) forwards;
}
.hero .eyebrow{ animation-delay:.15s; }
.hero h1{ animation-delay:.28s; }
.hero__claim{ animation-delay:.44s; }
.hero__cta{ animation-delay:.58s; }
@keyframes heroUp{ to{ opacity:1; transform:none; } }

.section-head{ max-width:34ch; margin-bottom:clamp(2.75rem,5vw,4.5rem); }
.section-head .lead{ margin-top:1rem; }
.section-head.center{ margin-inline:auto; }

.leistungen{
  display:grid; gap:0; grid-template-columns:1fr;
  border-top:1px solid var(--line);
}
.leistung{
  position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center;
  gap:1.4rem; padding:1.75rem .25rem; border-bottom:1px solid var(--line);
  transition:padding-left .4s var(--ease-out), color .3s var(--ease);
}
.leistung::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:var(--accent); transform:scaleY(0); transform-origin:top;
  transition:transform .4s var(--ease-out);
}
.leistung:hover{ padding-left:1.4rem; }
.leistung:hover::before{ transform:scaleY(1); }
.leistung svg{ width:30px; height:30px; stroke:var(--accent); fill:none; stroke-width:1.4; flex:0 0 auto; }
.leistung h3{ margin:0; font-size:clamp(1.35rem,1.1rem+1vw,1.9rem); }
.leistung h3 a{ color:var(--ink); }
.leistung:hover h3{ color:var(--accent-ink); }
.leistung__link{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-soft); white-space:nowrap;
}
.leistung:hover .leistung__link{ color:var(--accent-ink); }

.gallery{
  display:grid; gap:clamp(.5rem,1.2vw,1rem);
  grid-template-columns:repeat(6,1fr); grid-auto-flow:dense;
}
.gallery figure{
  position:relative; margin:0; overflow:hidden; background:var(--paper-3);
  cursor:zoom-in; border-radius:var(--radius);
}
.gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease-out); }
.gallery figure:hover img{ transform:scale(1.05); }
.gallery figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:1.4rem 1.2rem 1.1rem;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:#fff;
  background:linear-gradient(180deg, transparent, rgba(20,18,14,.82));
  opacity:0; transform:translateY(10px); transition:opacity .4s var(--ease), transform .4s var(--ease-out);
}
.gallery figure:hover figcaption,
.gallery figure:focus-within figcaption{ opacity:1; transform:translateY(0); }
.gallery figure:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

.span-wide{ grid-column:span 4; }
.span-tall{ grid-column:span 2; grid-row:span 2; }
.span-3{ grid-column:span 3; }
.span-2{ grid-column:span 2; }
.gallery figure:not([class*="span-"]){ grid-column:span 2; }

.gallery-more{ margin-top:3rem; display:flex; justify-content:center; }

.about{
  display:grid; gap:clamp(2rem,5vw,4.5rem); align-items:center;
  grid-template-columns:1fr;
}
.about__media{ position:relative; }
.about__media::before{
  content:""; position:absolute; inset:auto -18px -18px auto; width:66%; height:72%;
  border:1px solid var(--accent); opacity:.4; z-index:0;
}
.about__media img{
  position:relative; z-index:1; width:100%; border-radius:var(--radius);
  box-shadow:var(--shadow); filter:grayscale(.15);
}
.about__body h2{ margin-top:0; }

.steps{ display:grid; gap:clamp(2rem,4vw,3rem); grid-template-columns:1fr; counter-reset:step; }
.step{ position:relative; padding-top:2.4rem; border-top:1px solid var(--line); }
.step::before{
  counter-increment:step; content:counter(step,decimal-leading-zero);
  position:absolute; left:0; top:-.05rem;
  font-family:var(--mono); font-size:.82rem; letter-spacing:.1em; color:var(--accent-ink);
}
.step h3{ margin:.1rem 0 .5rem; }
.step p{ color:var(--ink-soft); margin:0; }

.regions{ display:grid; gap:clamp(2rem,4vw,3.5rem); grid-template-columns:1fr; align-items:start; }
.regions__map{
  padding:1.5rem; background:var(--paper-2);
  border:1px solid var(--line); border-radius:var(--radius);
}
.regions__map svg{ width:100%; height:auto; }
.regions h3{ font-size:1.1rem; margin:1.6rem 0 .5rem; letter-spacing:-.01em; }
.regions h3:first-child{ margin-top:0; }
.chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 1rem; }
.chip{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.04em;
  padding:.4rem .8rem; border:1px solid var(--line); background:var(--paper);
  color:var(--ink-soft); border-radius:var(--radius);
  transition:border-color .25s var(--ease), color .25s var(--ease);
}
.chip:hover{ border-color:var(--accent); color:var(--accent-ink); }

.quotes{ display:grid; gap:2.5rem; grid-template-columns:1fr; }
.quote{ border-left:2px solid var(--accent); padding:.4rem 0 .4rem 1.8rem; }
.quote blockquote{ margin:0 0 .8rem; font-family:var(--display); font-weight:500; font-size:1.4rem; line-height:1.35; letter-spacing:-.01em; }
.quote cite{ font-style:normal; font-family:var(--mono); font-size:.78rem; letter-spacing:.08em; color:var(--ink-soft); }
.placeholder-note{ font-size:.78rem; color:var(--ink-soft); font-style:italic; }

.faq{ max-width:860px; border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  cursor:pointer; list-style:none; padding:1.5rem 2.6rem 1.5rem 0; position:relative;
  font-family:var(--display); font-weight:500; font-size:clamp(1.15rem,1rem+.6vw,1.45rem);
  letter-spacing:-.01em; color:var(--ink); transition:color .25s var(--ease);
}
.faq summary:hover{ color:var(--accent-ink); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; position:absolute; right:.35rem; top:50%; width:14px; height:14px;
  margin-top:-7px; transition:transform .35s var(--ease-out);
  background:
    linear-gradient(var(--accent),var(--accent)) center/100% 1.5px no-repeat,
    linear-gradient(var(--accent),var(--accent)) center/1.5px 100% no-repeat;
}
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details[open] summary{ color:var(--accent-ink); }
.faq details p{ padding:0 0 1.6rem; margin:0; color:var(--ink-soft); max-width:70ch; }

.cta-band{ position:relative; overflow:hidden; background:var(--ink); color:var(--paper); text-align:center; }
.cta-band::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:url("../img/my-work/work-18.jpg") center/cover no-repeat;
  opacity:.22; filter:grayscale(.35) contrast(1.05);
  transform:scale(1.06);
}
.cta-band::after{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(20,18,14,.5), rgba(20,18,14,.72));
}
.cta-band > .wrap{ position:relative; z-index:1; max-width:720px; }
.cta-band h2{ color:var(--paper); }
.cta-band p{ margin-inline:auto; color:rgba(255,255,255,.82); font-size:1.1em; }
.cta-band .btn{ border-color:rgba(255,255,255,.85); color:var(--paper); margin-top:1.25rem; }
.cta-band .btn:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
@media (prefers-reduced-motion: reduce){ .cta-band::before{ transform:none; } }

.site-footer{ border-top:1px solid var(--line); padding-block:clamp(3.5rem,6vw,5.5rem); text-align:center; }
.site-footer__logo img{ max-height:100px; width:auto; opacity:.5; margin-inline:auto; }
.footer-nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.6rem; margin:2.25rem 0; }
.footer-nav a{ color:var(--ink-soft); font-size:.84rem; font-weight:500; letter-spacing:.03em; transition:color .25s var(--ease); }
.footer-nav a:hover{ color:var(--accent-ink); }
.footer-legal{ font-family:var(--mono); font-size:.74rem; letter-spacing:.04em; color:var(--ink-soft); max-width:none; margin:0 auto; }

/* Designer credit — subordinate line; only the linked name carries the gradient */
.footer-credit{ font-family:var(--mono); font-size:.68rem; letter-spacing:.04em; color:var(--ink-soft); margin:.45rem auto 0; }
.dark-page .footer-credit{ color:rgba(245,242,236,.5); }
.footer-credit a{ color:var(--accent-ink); font-weight:600; transition:opacity .3s var(--ease); }
.footer-credit a:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:2px; }
/* Gradient text only where background-clip:text is supported; else solid --accent-ink stays readable */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .footer-credit a{
    background:linear-gradient(90deg,#9C8564,#B5794F,#C9A85E,#A98F6F,#9C8564);
    background-size:300% 100%;
    -webkit-background-clip:text; background-clip:text;
    -webkit-text-fill-color:transparent; color:transparent;
    animation:creditShimmer 8s linear infinite;
  }
}
@keyframes creditShimmer{ to{ background-position:-300% 0; } }
.footer-credit a:hover,
.footer-credit a:focus-visible{ animation-duration:5s; }
@media (prefers-reduced-motion:reduce){
  .footer-credit a{ animation:none; background-position:0 0; }
}

.modal{
  position:fixed; inset:0; z-index:200; display:none;
  align-items:center; justify-content:center; padding:clamp(.75rem,3vw,1.5rem);
}
.modal[open], .modal.is-open{ display:flex; }
.modal__backdrop{ position:absolute; inset:0; background:rgba(16,14,10,.62); backdrop-filter:blur(3px); }
.modal__panel{
  position:relative; width:100%; max-width:600px; height:min(90vh,780px); height:min(90dvh,780px); overflow:hidden;
  background:var(--paper); display:flex; flex-direction:column;
  border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:0 40px 90px -30px rgba(16,14,10,.6); animation:modalIn .45s var(--ease-out);
}
@keyframes modalIn{ from{ opacity:0; transform:translateY(18px) scale(.99); } to{ opacity:1; transform:none; } }
.modal__head{
  flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.1rem 1.4rem .9rem;
}
.modal__head img{ max-height:26px; width:auto; }
.modal__close{
  width:42px; height:42px; border:1px solid var(--line); background:none; border-radius:50%;
  display:grid; place-items:center; transition:background .2s var(--ease), border-color .2s var(--ease); flex:0 0 auto;
}
.modal__close:hover{ background:var(--paper-2); border-color:var(--accent); }
.modal__close svg{ width:16px; height:16px; stroke:var(--ink); stroke-width:1.6; }

.progress{ flex:0 0 auto; height:3px; background:var(--line); position:relative; overflow:hidden; }
.progress__fill{ position:absolute; inset:0 auto 0 0; width:16.66%; background:var(--accent); transition:width .45s var(--ease-out); }

#booking-form{ flex:1 1 auto; display:flex; flex-direction:column; min-height:0; }
.modal__body{ flex:1 1 auto; padding:clamp(1.1rem,3vw,1.75rem) clamp(1.1rem,4vw,1.75rem); overflow-y:auto; display:flex; }
.step-fs{ border:0; margin:0; padding:0; display:none; width:100%; }
.step-fs.is-active{ display:flex; flex-direction:column; flex:1 1 auto; gap:clamp(.4rem,1.2vw,.6rem); animation:stepIn .4s var(--ease-out); }
@keyframes stepIn{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
.step-fs legend{ flex:0 0 auto; font-family:var(--display); font-weight:600; letter-spacing:-.02em; font-size:clamp(1.3rem,1rem+1.2vw,1.65rem); line-height:1.15; margin-bottom:clamp(.7rem,2vw,1.1rem); padding:0; }
.step-fs .err{ flex:0 0 auto; margin-top:auto; }

.opt{ display:block; margin-bottom:0; }
.opt input{ position:absolute; opacity:0; width:1px; height:1px; }
.opt__card{
  display:flex; align-items:center; gap:.85rem; min-height:46px;
  padding:.85rem 1.05rem; border:1px solid var(--line); background:var(--paper);
  border-radius:var(--radius);
  transition:border-color .2s var(--ease), background .2s var(--ease), transform .15s var(--ease);
}
.opt__card:hover{ border-color:var(--ink-soft); }
.opt__card::before{
  content:""; width:20px; height:20px; flex:0 0 auto; border:1.5px solid var(--ink-soft);
  border-radius:50%; transition:all .2s var(--ease);
}
.opt input[type="checkbox"]+.opt__card::before{ border-radius:4px; }
.opt input:focus-visible+.opt__card{ outline:2px solid var(--accent); outline-offset:2px; }
.opt input:checked+.opt__card{ border-color:var(--accent); background:var(--accent-wash); }
.opt input:checked+.opt__card::before{ border-color:var(--accent); background:var(--accent); box-shadow:inset 0 0 0 3px var(--paper); }

.reveal-field{ display:none; }
.reveal-field.is-open{ display:block; margin:.6rem 0 0; animation:stepIn .3s var(--ease-out); }

.field{ margin-bottom:1rem; }
.field label{ display:block; font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.4rem; color:var(--ink-soft); }
.field input, .field textarea{
  width:100%; padding:.85rem .95rem; border:1px solid var(--line); background:var(--paper); color:var(--ink);
  font:inherit; font-size:1rem; border-radius:var(--radius);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field input::placeholder, .field textarea::placeholder{ color:var(--ink-soft); opacity:.75; }
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-wash); }
.field textarea{ min-height:92px; resize:vertical; }
.grid-2{ display:grid; gap:1rem; grid-template-columns:1fr 1fr; }
.err{ color:#B33122; font-size:.82rem; font-weight:500; margin:.4rem 0 0; min-height:1.1em; }

.consent{ display:flex; gap:.75rem; align-items:flex-start; margin:1rem 0; font-size:.9rem; color:var(--ink-soft); }
.consent input{ margin-top:.2rem; width:20px; height:20px; flex:0 0 auto; accent-color:var(--accent); }
.honey{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.modal__foot{
  flex:0 0 auto; display:flex; gap:.8rem; justify-content:space-between;
  padding:1rem clamp(1.1rem,4vw,1.6rem) 1.25rem; border-top:1px solid var(--line); background:var(--paper);
}
.modal__foot .btn{ flex:1; text-align:center; }
.modal__foot .btn:disabled{ opacity:.4; cursor:not-allowed; }
.modal__foot .btn:only-child{ flex:1; }

.confirm{ text-align:center; padding:2.5rem 1rem; }
.confirm svg{ width:64px; height:64px; margin:0 auto 1.5rem; display:block; stroke:var(--accent); }
.confirm h3{ font-size:1.6rem; }
.confirm .check-path{ stroke-dasharray:48; stroke-dashoffset:48; animation:draw .8s var(--ease-out) forwards .2s; }
.confirm .check-circle{ stroke-dasharray:170; stroke-dashoffset:170; animation:draw .8s var(--ease-out) forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }

.page-hero{ padding-top:clamp(8rem,14vw,11rem); padding-bottom:clamp(2rem,4vw,3rem); border-bottom:1px solid var(--line); }
.page-hero h1{ color:var(--ink); }
.breadcrumb{ font-family:var(--mono); font-size:.74rem; letter-spacing:.06em; color:var(--ink-soft); margin-bottom:1.25rem; }
.breadcrumb a{ color:var(--ink-soft); }
.breadcrumb a:hover{ color:var(--accent-ink); }
.prose h2{ margin-top:2.6rem; font-size:clamp(1.5rem,1.2rem+1vw,2rem); }
.prose h3{ margin-top:1.8rem; }
.prose p, .prose li{ color:var(--ink); }
.prose ul{ list-style:none; padding-left:0; margin:0 0 1.2em; }
.prose li{ position:relative; padding-left:1.4rem; margin-bottom:.5rem; }
.prose li::before{ content:""; position:absolute; left:0; top:.7em; width:.5rem; height:1px; background:var(--accent); }
.todo-note{
  background:var(--accent-wash); border:1px solid var(--accent); color:var(--accent-ink);
  padding:1rem 1.2rem; margin:1.5rem 0; font-size:.9rem; border-radius:var(--radius);
}
.contact-grid{ display:grid; gap:clamp(2rem,5vw,4rem); grid-template-columns:1fr; }
.contact-card h2{ font-size:clamp(1.5rem,1.2rem+1.2vw,2.1rem); }
.contact-card p{ margin:.2rem 0; }
.contact-card a{ color:var(--accent-ink); }

.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.reveal.is-in{ opacity:1; transform:none; }

.leistung,.step,.gallery figure{ transition:transform .4s var(--ease-out), color .3s var(--ease), padding-left .4s var(--ease-out); }
.reveal.is-in .leistung,
.reveal.is-in .step{ animation:fadeUp .6s var(--ease-out) backwards; }
.reveal.is-in .leistung:nth-child(2){ animation-delay:.05s; }
.reveal.is-in .leistung:nth-child(3){ animation-delay:.1s; }
.reveal.is-in .leistung:nth-child(4){ animation-delay:.15s; }
.reveal.is-in .leistung:nth-child(5){ animation-delay:.2s; }
.reveal.is-in .leistung:nth-child(6){ animation-delay:.25s; }
.reveal.is-in .step:nth-child(2){ animation-delay:.08s; }
.reveal.is-in .step:nth-child(3){ animation-delay:.16s; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }

body::after{
  content:""; position:fixed; inset:0; z-index:60; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important;
    transition-duration:.001ms!important; scroll-behavior:auto!important; }
  .reveal{ opacity:1; transform:none; }
  .hero__img{ animation:none; transform:none; }
  .hero .eyebrow,.hero h1,.hero__claim,.hero__cta{ opacity:1; transform:none; animation:none; }
  .gallery figure:hover img{ transform:none; }
}

.lightbox{
  position:fixed; inset:0; z-index:300; display:none;
  align-items:center; justify-content:center; padding:clamp(.5rem,3vw,2rem);
  background:rgba(10,9,7,.94);
}
.lightbox.is-open{ display:flex; }
.lightbox__img{
  max-width:100%; max-height:86vh; width:auto; height:auto; object-fit:contain;
  box-shadow:0 24px 70px rgba(0,0,0,.55); animation:lbIn .38s var(--ease-out);
}
@keyframes lbIn{ from{ opacity:0; transform:scale(.97); } to{ opacity:1; transform:none; } }
.lightbox__cap{
  position:absolute; left:0; right:0; bottom:clamp(.6rem,3vw,1.6rem); text-align:center;
  color:rgba(255,255,255,.9); font-family:var(--mono); font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; padding:0 1rem;
}
.lightbox__btn{
  position:absolute; width:52px; height:52px; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.22); color:#fff;
  display:grid; place-items:center; transition:background .2s var(--ease), border-color .2s var(--ease);
}
.lightbox__btn:hover{ background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.5); }
.lightbox__btn svg{ width:22px; height:22px; stroke:#fff; stroke-width:2; fill:none; }
.lightbox__close{ top:clamp(.5rem,3vw,1.4rem); right:clamp(.5rem,3vw,1.4rem); }
.lightbox__prev{ left:clamp(.3rem,2vw,1.4rem); top:50%; transform:translateY(-50%); }
.lightbox__next{ right:clamp(.3rem,2vw,1.4rem); top:50%; transform:translateY(-50%); }
@media (max-width:520px){
  .lightbox__btn{ width:44px; height:44px; }
  .lightbox__prev{ top:auto; bottom:clamp(.6rem,3vw,1.6rem); transform:none; }
  .lightbox__next{ top:auto; bottom:clamp(.6rem,3vw,1.6rem); transform:none; }
  .lightbox__cap{ bottom:4.5rem; }
}

@media (min-width:600px) and (max-width:900px){
  .gallery{ grid-template-columns:repeat(4,1fr); }
  .span-wide{ grid-column:span 4; }
  .span-3{ grid-column:span 2; }
  .span-tall{ grid-column:span 2; grid-row:span 2; }
}
@media (min-width:768px){
  .leistungen{ grid-template-columns:1fr; }
  .about{ grid-template-columns:44% 1fr; }
  .steps{ grid-template-columns:repeat(3,1fr); }
  .regions{ grid-template-columns:38% 1fr; }
  .contact-grid{ grid-template-columns:1fr 1fr; }
}

@media (max-width:900px){
  .nav-toggle{ display:block; }

  .header-solid{ background:var(--paper); backdrop-filter:none; -webkit-backdrop-filter:none; }
  .nav{
    position:fixed; top:0; left:0; right:0; bottom:auto; height:100vh; height:100dvh;
    z-index:120; flex-direction:column; justify-content:flex-start; gap:.5rem;
    background:var(--paper); transform:translateX(100%); transition:transform .45s var(--ease-out);
    padding:5rem 1.5rem calc(2rem + env(safe-area-inset-bottom)); overflow-y:auto; -webkit-overflow-scrolling:touch;
  }
  body.menu-open .nav{ transform:none; }
  .nav__list{ flex-direction:column; align-items:center; gap:1.4rem; text-align:center; width:100%; margin-block:auto; }
  .nav__list > li{ width:100%; }
  .nav__link{ color:var(--ink); font-size:1.6rem; font-family:var(--display); font-weight:500; letter-spacing:-.02em; }
  .header-solid .nav__link{ color:var(--ink); }

  .has-drop > .nav__link{ display:inline-flex; align-items:center; gap:.6rem; }
  .has-drop > .nav__link::after{
    content:""; position:static; width:.5em; height:.5em; margin-top:-.25em;
    border:0; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
    background:none; transform:rotate(45deg); transform-origin:center;
    transition:transform .3s var(--ease-out); flex:0 0 auto;
  }
  .has-drop > .nav__link[aria-expanded="true"]::after{ transform:rotate(-135deg); }
  .drop{
    position:static; transform:none; box-shadow:none; border:0; background:none;
    min-width:0; width:100%; left:auto; right:auto; padding:0; text-align:center;
    display:block; overflow:hidden; visibility:hidden; opacity:0; max-height:0;
    transition:max-height .35s var(--ease-out), opacity .3s var(--ease), padding .35s var(--ease), visibility .35s;
  }
  /* Desktop flyout leaks in via :hover/:focus-within (specificity 0,3,0) and applies
     translateX(-50%) — shifting the full-width submenu off the left edge. Neutralize
     both; only data-open toggles the mobile submenu. */
  .has-drop:hover .drop,
  .has-drop:focus-within .drop{ transform:none; opacity:0; visibility:hidden; max-height:0; padding:0; }
  .has-drop .drop[data-open="true"]{ transform:none; opacity:1; visibility:visible; max-height:16rem; padding:.6rem 0 .2rem; }
  .drop a{ display:block; color:var(--ink-soft); font-size:1.05rem; font-weight:500; letter-spacing:0; padding:.5rem 0; }

  .btn-buchen{ position:fixed; top:1rem; right:4.4rem; z-index:130; padding:.75rem 1.1rem; }
  .header-solid .btn-buchen, .btn-buchen{ background:var(--ink); color:var(--paper); }
}
@media (max-width:520px){
  .brand img{ max-height:44px; }
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .span-wide,.span-3{ grid-column:span 2; }
  .span-tall{ grid-column:span 1; grid-row:span 2; }
  .grid-2{ grid-template-columns:1fr; }
  .leistung{ grid-template-columns:auto 1fr; }
  .leistung__link{ grid-column:2; }
  .modal{ top:0; bottom:auto; height:100vh; height:100dvh; padding:0; align-items:stretch; }
  .modal__panel{
    max-width:none; max-height:none; height:100vh; height:100dvh;
    border:0; border-radius:0; animation:sheetIn .4s var(--ease-out);
  }
  @keyframes sheetIn{ from{ transform:translateY(100%); } to{ transform:none; } }
  .modal__foot{ padding-bottom:calc(1.25rem + env(safe-area-inset-bottom)); }
}

@media (prefers-color-scheme: dark){
  :root{
    --ink:#EDE8DD; --ink-2:#D3CDC0; --ink-soft:#A29C8E; --paper:#141310; --paper-2:#1C1B17;
    --paper-3:#242320; --line:#2E2C27;
    --accent:#D9714E; --accent-ink:#E0805F; --accent-wash:rgba(217,113,78,.14);
    --shadow:0 24px 60px -28px rgba(0,0,0,.7);
  }
  .brand img:not(.brand__white){ filter:invert(1) brightness(1.5) drop-shadow(0 2px 6px rgba(0,0,0,.5)); }
  .site-footer__logo img, .modal__head img{ filter:invert(1) brightness(1.5); }
  .about__media img{ filter:grayscale(.15) brightness(.95); }
  .header-solid{ background:color-mix(in srgb, var(--paper) 82%, transparent); }
  .btn--solid{ background:var(--accent); border-color:var(--accent); color:#141310; }
  .btn--solid:hover{ background:#fff; border-color:#fff; color:var(--ink); }
  .btn-buchen{ background:var(--accent); border-color:var(--accent); color:#141310; }
  .cta-band{ background:#0E0D0B; }
  body::after{ mix-blend-mode:screen; opacity:.05; }
}

.showcase-exp{ padding-block:var(--pad-y); overflow-x:clip; --sc-off:clamp(1rem, 4.5vw, 3.5rem); }
.showcase-exp__stage{ position:relative; width:min(100%, 60rem); margin-inline:auto; isolation:isolate; }
.showcase-exp__box{ position:absolute; z-index:0; }
.showcase-exp__box--back{ inset:calc(-1 * var(--sc-off)) calc(-1 * var(--sc-off)) auto auto; width:82%; aspect-ratio:4/3; background:var(--paper-2); }
.showcase-exp__box--front{ inset:auto auto calc(-1 * var(--sc-off)) calc(-1 * var(--sc-off)); width:64%; aspect-ratio:4/3; background:var(--paper-3); }
.showcase-exp__img{ position:relative; z-index:1; width:100%; height:auto; display:block; box-shadow:0 34px 70px -34px rgba(26,24,19,.42), 0 8px 20px -12px rgba(26,24,19,.18); }
@media (max-width:768px){
  .showcase-exp{ --sc-off:clamp(.7rem, 3.5vw, 1.4rem); }
  .showcase-exp__stage{ width:min(100%, 34rem); }
}

body.loading{ overflow:hidden; }
.loader{
  position:fixed; inset:0; z-index:500; display:grid; place-items:center; overflow:hidden;
  background:linear-gradient(135deg,#141310 0%,#251d14 46%,#0f0e0b 100%);
  transition:opacity .8s var(--ease-out), visibility .8s var(--ease-out);
}
.loader::before{
  content:""; position:absolute; width:62vmax; height:62vmax; border-radius:50%;
  background:radial-gradient(circle, rgba(178,68,33,.38), transparent 62%);
  filter:blur(50px); animation:loaderGlow 6s ease-in-out infinite alternate;
}
.loader::after{
  content:""; position:absolute; inset:0; opacity:.06; pointer-events:none; mix-blend-mode:screen;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
@keyframes loaderGlow{ from{ transform:translate(-18%,-12%) scale(1);} to{ transform:translate(18%,14%) scale(1.28);} }
.loader__inner{ position:relative; text-align:center; padding:2rem; }
.loader__eyebrow{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.35em; text-transform:uppercase;
  color:rgba(244,241,234,.55); display:block; margin-bottom:1.4rem;
  opacity:0; animation:loaderFade .9s var(--ease-out) forwards .15s;
}
.loader__name{
  font-family:var(--display); font-weight:600; letter-spacing:-.02em; line-height:1;
  color:#F5F2EC; font-size:clamp(2.1rem,7.5vw,5.5rem); margin:0;
}
.loader__char{
  display:inline-block; white-space:pre; opacity:0;
  transform:translateY(.7em) rotate(9deg) scale(.7);
  animation:loaderChar .8s cubic-bezier(.2,.7,.3,1) forwards;
  animation-delay:calc(55ms * var(--i));
}
.loader__rule{
  width:0; height:1px; margin:1.6rem auto 0; background:rgba(244,241,234,.35);
  animation:loaderRule 1s var(--ease-out) forwards .9s;
}
@keyframes loaderChar{ to{ opacity:1; transform:none; } }
@keyframes loaderFade{ to{ opacity:1; } }
@keyframes loaderRule{ to{ width:min(58%,320px); } }
.loader.is-done{ opacity:0; visibility:hidden; pointer-events:none; }
@media (prefers-reduced-motion:reduce){
  .loader::before{ animation:none; }
  .loader__char,.loader__eyebrow,.loader__rule{ animation:none; opacity:1; transform:none; width:min(58%,320px); }
}

body.galerie{ background:#141310; }
.galerie .site-header{
  background:rgba(20,18,14,.55); backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px); box-shadow:0 1px 0 rgba(255,255,255,.08);
}
/* ── Dark-page header treatment — reusable: add class "dark-page" to <body>.
   body.* prefixes give higher specificity than .header-solid so it wins on a
   permanently-solid dark header. Uses the white logo asset (brand--dual). ── */
body.dark-page .brand--dual .brand__white{ display:block; }
body.dark-page .brand--dual .brand__main{ display:none; }
body.dark-page .nav-toggle span,
body.dark-page .nav-toggle span::before,
body.dark-page .nav-toggle span::after{ background:#F5F2EC; }
body.dark-page.menu-open .nav-toggle span{ background:transparent; }
body.dark-page.menu-open .nav-toggle span::before,
body.dark-page.menu-open .nav-toggle span::after{ background:#F5F2EC; }
.galerie .nav__link{ color:rgba(245,242,236,.9); }
.galerie .nav__link:hover{ color:#fff; }
.galerie .btn-buchen{ background:var(--accent); border-color:var(--accent); color:#fff; }
@media (max-width:900px){
  .galerie .nav{ background:#141310; }
  .galerie .nav__link{ color:#F5F2EC; }
}

.captures{ padding:calc(8rem + 4vw) 0 clamp(4rem,8vw,7rem); text-align:center; color:#F5F2EC; overflow-x:clip; }
.captures__head{ margin-bottom:clamp(3rem,7vw,6rem); }
.captures__icon{ width:60px; height:60px; margin:0 auto 1.6rem; display:block; color:var(--accent); stroke:currentColor; fill:none; stroke-width:1.3; }
.captures__title{
  font-family:var(--display); font-weight:600; text-transform:uppercase;
  font-size:clamp(2.8rem,13vw,9rem); letter-spacing:.01em; line-height:.9; color:#fff; margin:0;
}
.captures__sub{
  font-family:var(--mono); font-size:.76rem; letter-spacing:.25em; text-transform:uppercase;
  color:rgba(245,242,236,.5); margin-top:1.5rem;
}
.captures__grid{ display:flex; flex-direction:column; align-items:center; gap:clamp(3.5rem,8vw,8rem); }
.cap{ margin:0; width:min(74%,820px); }
.cap img{
  width:100%; height:auto; display:block; background:#EFEBE2;
  border:clamp(.7rem,1.6vw,1.4rem) solid #EFEBE2;
  box-shadow:0 34px 70px rgba(0,0,0,.55);
}
.cap figcaption{
  margin-top:1.1rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(245,242,236,.5);
}

.cap{ opacity:0; transform:translateY(5em); transition:opacity 1s var(--ease-out), transform 1.1s var(--ease-out); }
.cap--left.in{ opacity:1; transform:translateY(0) rotate(-4deg); }
.cap--right.in{ opacity:1; transform:translateY(0) rotate(4deg); }
@media (max-width:600px){
  .cap{ width:88%; }
  .cap--left.in,.cap--right.in{ transform:none; opacity:1; }
  .captures__title{ font-size:clamp(2.2rem,12vw,3.6rem); letter-spacing:-.01em; }
  .captures__sub{ letter-spacing:.14em; font-size:.66rem; }
}
@media (prefers-reduced-motion:reduce){ .cap{ opacity:1; transform:none; transition:none; } .cap--left.in,.cap--right.in{ transform:none; } }

.galerie .site-footer{ border-top-color:rgba(255,255,255,.1); }
.galerie .site-footer__logo img{ filter:invert(1) brightness(1.6); }
.galerie .footer-nav a{ color:rgba(245,242,236,.6); }
.galerie .footer-nav a:hover{ color:var(--accent); }
.galerie .footer-legal{ color:rgba(245,242,236,.45); }

.loader__ring{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.loader__inner{ position:relative; z-index:2; }
.loader__card{
  position:absolute; top:50%; left:50%; margin:0;
  width:clamp(64px,8.4vw,116px); aspect-ratio:3/4; overflow:hidden;
  border:5px solid #F5F2EC; background:#F5F2EC; border-radius:2px;
  box-shadow:0 20px 44px rgba(0,0,0,.5);
  opacity:0; transform:translate(-50%,-50%) scale(.35) rotate(0deg);
  animation:loaderCard 1s cubic-bezier(.2,.7,.3,1) forwards; animation-delay:var(--d);
}
.loader__card img{ width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(.12) contrast(1.05); }
@keyframes loaderCard{
  to{ opacity:1; transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) rotate(var(--rot)) scale(1); }
}
@media (max-width:600px){ .loader__card{ width:clamp(58px,17vw,92px); border-width:4px; } }
@media (prefers-reduced-motion:reduce){
  .loader__card{ animation:none; opacity:1;
    transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) rotate(var(--rot)); }
}

.loader__card:nth-child(1){ --tx:min(40vw,560px); --ty:min(4vh,32px); --rot:6deg; --d:.55s; }
.loader__card:nth-child(2){ --tx:min(26vw,320px); --ty:calc(-1*min(30vh,280px)); --rot:-5deg; --d:.7s; }
.loader__card:nth-child(3){ --tx:calc(-1*min(26vw,320px)); --ty:calc(-1*min(30vh,280px)); --rot:5deg; --d:.85s; }
.loader__card:nth-child(4){ --tx:calc(-1*min(40vw,560px)); --ty:min(4vh,32px); --rot:-6deg; --d:1s; }
.loader__card:nth-child(5){ --tx:calc(-1*min(24vw,300px)); --ty:min(31vh,285px); --rot:7deg; --d:1.15s; }
.loader__card:nth-child(6){ --tx:min(24vw,300px); --ty:min(31vh,285px); --rot:-7deg; --d:1.3s; }
@media (max-width:600px){
  .loader__card:nth-child(1){ --tx:min(33vw,210px); --ty:min(19vh,150px); }
  .loader__card:nth-child(4){ --tx:calc(-1*min(33vw,210px)); --ty:calc(-1*min(19vh,150px)); }
  .loader__card:nth-child(2){ --tx:min(30vw,190px); --ty:calc(-1*min(30vh,250px)); }
  .loader__card:nth-child(3){ --tx:calc(-1*min(30vw,190px)); --ty:calc(-1*min(30vh,250px)); }
  .loader__card:nth-child(5){ --tx:calc(-1*min(28vw,180px)); --ty:min(30vh,250px); }
  .loader__card:nth-child(6){ --tx:min(28vw,180px); --ty:min(30vh,250px); }
}

.prose--narrow{ max-width:820px; }
.u-mt-lg{ margin-top:2.5rem; }
.u-mt-md{ margin-top:1.5rem; }
