:root { --void:#0c0c0c; --coal:#171717; --cream:#f2efe8; --soft:#b9b4ab; --signal:#ff6847; --line:rgba(242,239,232,.22); --display:Georgia,"Times New Roman",serif; --body:Arial,Helvetica,sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; background:var(--void); } body { margin:0; overflow-x:hidden; color:var(--cream); background:var(--void); font-family:var(--body); font-size:16px; line-height:1.5; } body.menu-is-open { overflow:hidden; } img,video { display:block; width:100%; max-width:100%; } a { color:inherit; text-decoration:none; } button { font:inherit; } h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-weight:400; } h1,h2 { font-family:var(--display); letter-spacing:-.045em; line-height:.84; text-transform:uppercase; } h1 { margin-bottom:1.75rem; font-size:clamp(4.65rem,12.2vw,13.5rem); } h2 { margin-bottom:1.7rem; font-size:clamp(3.75rem,8.2vw,9.1rem); } em { color:var(--signal); font-style:normal; } :focus-visible { outline:2px solid var(--signal); outline-offset:5px; }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }.skip-link { position:fixed; z-index:100; top:-5rem; left:1rem; padding:.8rem 1rem; color:var(--void); background:var(--cream); font-weight:bold; }.skip-link:focus { top:1rem; }
.site-header { position:absolute; z-index:20; top:0; left:0; display:flex; align-items:center; justify-content:space-between; width:100%; padding:1.15rem clamp(1.15rem,3.3vw,4.5rem); color:var(--cream); }.brand { display:flex; align-items:center; gap:.5rem; font-size:.73rem; font-weight:bold; letter-spacing:.04em; line-height:1.02; text-transform:uppercase; }.brand img { width:3.1rem; height:3.1rem; object-fit:contain; filter:grayscale(1) brightness(0) invert(1); }.site-header nav { display:flex; align-items:center; gap:clamp(1.25rem,2.5vw,3rem); font-size:.7rem; font-weight:bold; letter-spacing:.11em; text-transform:uppercase; }.site-header nav a:not(.nav-cta) { transition:color .2s ease; }.site-header nav a:not(.nav-cta):hover,.site-header nav a:not(.nav-cta):focus-visible { color:var(--signal); }.site-header nav span[aria-hidden] { color:var(--signal); }.nav-kicker,.nav-mail { display:none; }.nav-cta,.button { display:inline-flex; align-items:center; justify-content:center; gap:.75rem; padding:.9rem 1.15rem; color:var(--void); background:var(--signal); border:1px solid var(--signal); font-size:.7rem; font-weight:bold; letter-spacing:.11em; text-transform:uppercase; transition:color .25s ease,background .25s ease,transform .25s ease; }.nav-cta:hover,.nav-cta:focus-visible,.button:hover,.button:focus-visible { color:var(--cream); background:transparent; transform:translateY(-3px); }.menu-button { display:none; }
.hero { position:relative; display:flex; align-items:flex-end; min-height:max(44rem,100svh); padding:clamp(7rem,14vh,10rem) clamp(1.15rem,8.5vw,10rem) clamp(3.5rem,8vh,6.5rem); overflow:hidden; isolation:isolate; }.hero-media,.hero-shade { position:absolute; inset:-7%; z-index:-2; }.hero-media img,.contact-image img { height:100%; object-fit:cover; }.hero-shade { z-index:-1; background:linear-gradient(90deg,rgba(4,4,4,.88) 0%,rgba(4,4,4,.44) 55%,rgba(4,4,4,.2)),linear-gradient(0deg,rgba(4,4,4,.65),transparent 38%); }.hero-copy { width:min(63rem,100%); }.eyebrow { margin-bottom:1.25rem; color:var(--signal); font-size:.68rem; font-weight:bold; letter-spacing:.16em; text-transform:uppercase; }.intro { width:min(29rem,100%); margin-bottom:2rem; color:var(--cream); font-size:clamp(1rem,1.2vw,1.16rem); }.circle-link { display:inline-flex; align-items:center; justify-content:space-between; width:8.7rem; height:8.7rem; padding:1rem; border:1px solid rgba(242,239,232,.75); border-radius:50%; font-size:.67rem; font-weight:bold; letter-spacing:.1em; text-transform:uppercase; transition:background .25s ease,color .25s ease,transform .25s ease; }.circle-link b { font-size:1.3rem; font-weight:400; }.circle-link:hover,.circle-link:focus-visible { color:var(--void); background:var(--cream); transform:rotate(-8deg); }.hero-signature { --social-gap:.65rem; position:absolute; right:clamp(1.15rem,3.3vw,4.5rem); bottom:clamp(3.5rem,8vh,6.5rem); display:flex; align-items:flex-end; column-gap:1.95rem; }.hero-socials { display:flex; align-items:flex-end; gap:var(--social-gap); }.hero-socials a { display:flex; align-items:flex-end; justify-content:center; height:2rem; transition:transform .2s ease; }.hero-socials a:first-child { width:2rem; }.hero-socials a:last-child { width:2.9rem; }.hero-socials a:hover,.hero-socials a:focus-visible { transform:translateY(-2px); }.hero-socials img { width:100%; max-height:100%; object-fit:contain; }.hero-side-note { margin:0; font-family:var(--display); font-size:clamp(1.3rem,2vw,2.2rem); line-height:.9; text-align:right; text-transform:uppercase; }.hero-side-note span { color:var(--soft); font-family:var(--body); font-size:.55em; letter-spacing:.06em; }.scroll-prompt { position:absolute; right:clamp(1.15rem,3.3vw,4.5rem); bottom:1.5rem; display:flex; align-items:center; gap:.75rem; font-size:.6rem; font-weight:bold; letter-spacing:.13em; text-transform:uppercase; }.scroll-prompt i { display:block; width:2.3rem; border-top:1px solid var(--cream); }
.manifesto { padding:clamp(7rem,15vw,16rem) clamp(1.15rem,8.5vw,10rem); }.manifesto-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(15rem,.45fr); gap:clamp(2rem,12vw,13rem); align-items:end; }.manifesto h2 { margin:0; }.manifesto-copy { margin:0 0 .55rem; color:var(--soft); font-size:clamp(1rem,1.3vw,1.25rem); }
.services { padding:0 clamp(1.15rem,4.2vw,5rem) clamp(6rem,10vw,10rem); background:var(--cream); color:var(--void); }.services-heading { padding:clamp(6rem,10vw,10rem) clamp(0rem,4.3vw,5rem) clamp(3rem,7vw,7rem); }.services .eyebrow { color:#be3d25; }.service-scenes { border-top:1px solid rgba(12,12,12,.25); }.service-scene { display:grid; grid-template-columns:5rem minmax(14rem,1fr) minmax(18rem,.88fr); gap:clamp(1.25rem,3vw,4rem); min-height:30rem; padding:2rem clamp(0rem,4.3vw,5rem); border-bottom:1px solid rgba(12,12,12,.25); align-items:center; }.service-index { align-self:start; color:#be3d25; font-family:var(--display); font-size:1.35rem; }.service-content h3 { margin-bottom:1.2rem; font-family:var(--display); font-size:clamp(2.7rem,4.5vw,5.4rem); letter-spacing:-.04em; line-height:.86; text-transform:uppercase; }.service-content p { max-width:31rem; margin:0; font-size:.95rem; }.service-image { align-self:stretch; min-height:22rem; overflow:hidden; background:#bbb; }.service-image img { height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.65,.2,1); }.service-scene:hover .service-image img { transform:scale(1.05); }
.occasions { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,7vw,8rem); min-height:57rem; padding:clamp(6rem,10vw,10rem) clamp(1.15rem,8.5vw,10rem); background:#232323; }.occasion-copy { align-self:start; max-width:35rem; }.occasion-copy > p:last-child { max-width:25rem; margin:0; color:var(--soft); }.occasion-showcase { position:relative; min-height:39rem; }.occasion-card { position:absolute; overflow:hidden; background:#444; box-shadow:0 1.2rem 3rem rgba(0,0,0,.2); }.occasion-card::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.78)); }.occasion-card img { height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.65,.2,1); }.occasion-card:hover img { transform:scale(1.05); }.occasion-card span { position:absolute; z-index:1; bottom:1.25rem; left:1.25rem; right:1.25rem; display:flex; align-items:end; justify-content:space-between; font-family:var(--display); font-size:clamp(1.65rem,2.8vw,3rem); letter-spacing:-.03em; line-height:.83; text-transform:uppercase; }.occasion-card b { color:var(--signal); font-family:var(--body); font-size:.8em; font-weight:400; }.occasion-card-main { inset:0 31% 0 0; }.occasion-card-top { top:0; right:0; width:28%; height:49%; }.occasion-card-bottom { z-index:2; right:0; bottom:0; width:clamp(11rem,36%,15.5rem); height:auto; aspect-ratio:3 / 4; }
.gallery { padding:clamp(6rem,10vw,10rem) 0; overflow:hidden; background:var(--void); }.gallery-heading { display:grid; grid-template-columns:1fr minmax(16rem,.45fr); gap:3rem; align-items:end; padding:0 clamp(1.15rem,8.5vw,10rem); }.gallery-copy { max-width:27rem; margin:0 0 .8rem; color:var(--soft); }.gallery-help { padding:0 clamp(1.15rem,8.5vw,10rem); margin:3rem 0 1rem; color:var(--soft); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }.gallery-rail { display:flex; gap:1rem; overflow-x:auto; padding:0 clamp(1.15rem,8.5vw,10rem) 1.4rem; scroll-snap-type:x mandatory; scrollbar-color:var(--signal) #313131; scrollbar-width:thin; }.gallery-rail:focus-visible { outline-offset:-4px; }.gallery-card { position:relative; flex:0 0 min(28vw,27rem); height:30rem; margin:0; overflow:hidden; scroll-snap-align:start; background:#282828; }.gallery-card-wide { flex-basis:min(42vw,42rem); }.gallery-card-portrait { flex-basis:min(23vw,23rem); }.gallery-card-square { flex-basis:min(29vw,28rem); }.gallery-card-video { flex-basis:min(43vw,42rem); }.gallery-card img,.gallery-card video { height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.65,.2,1); }.gallery-card:hover img { transform:scale(1.04); }.gallery-card figcaption { position:absolute; right:1rem; bottom:1rem; left:1rem; display:flex; gap:.6rem; align-items:center; font-size:.68rem; font-weight:bold; letter-spacing:.1em; text-transform:uppercase; }.gallery-card figcaption span { color:var(--signal); }.gallery-card-video figcaption { pointer-events:none; }
.ordering { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(3rem,12vw,14rem); padding:clamp(6rem,10vw,10rem) clamp(1.15rem,8.5vw,10rem); color:var(--void); background:var(--signal); }.ordering .eyebrow { color:var(--void); }.ordering em { color:var(--cream); }.steps { margin:0; padding:0; list-style:none; border-top:1px solid rgba(12,12,12,.45); }.steps li { display:grid; grid-template-columns:4rem 1fr; gap:1.2rem; padding:1.8rem 0; border-bottom:1px solid rgba(12,12,12,.45); }.steps li > span { font-family:var(--display); font-size:1.35rem; }.steps h3 { margin-bottom:.35rem; font-family:var(--display); font-size:clamp(1.8rem,2.6vw,2.8rem); letter-spacing:-.035em; line-height:.92; text-transform:uppercase; }.steps p { max-width:30rem; margin:0; }
.contact { position:relative; display:grid; min-height:49rem; padding:clamp(7rem,12vw,12rem) clamp(1.15rem,8.5vw,10rem); overflow:hidden; isolation:isolate; }.contact-image,.contact-layer { position:absolute; inset:-6%; z-index:-2; }.contact-layer { z-index:-1; background:linear-gradient(90deg,rgba(12,12,12,.94) 0%,rgba(12,12,12,.63) 55%,rgba(12,12,12,.27)); }.contact-copy { display:grid; grid-template-columns:1.15fr .55fr; gap:clamp(3rem,11vw,12rem); align-self:end; }.contact-copy h2 { margin:0; }.contact-details { align-self:end; }.contact-details > p { margin-bottom:1.7rem; }.button { color:var(--void); background:var(--cream); border-color:var(--cream); }.contact-mail { display:block; margin-top:2rem; font-size:clamp(1rem,1.4vw,1.3rem); text-decoration:underline; text-decoration-color:var(--signal); text-underline-offset:.3em; }
.site-footer { display:grid; grid-template-columns:1fr 1fr auto; gap:2rem; align-items:center; padding:2rem clamp(1.15rem,3.3vw,4.5rem); color:var(--soft); background:#060606; font-size:.72rem; }.site-footer .brand { color:var(--cream); }.site-footer .brand img { width:2.8rem; height:2.8rem; }.site-footer p { margin:0; }.site-footer nav { display:flex; flex-wrap:wrap; gap:1.1rem; }.site-footer nav a:hover,.site-footer nav a:focus-visible { color:var(--signal); }.copyright { grid-column:2 / -1; }
.reveal { opacity:0; transform:translateY(2.2rem); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.65,.2,1); }.reveal.is-visible { opacity:1; transform:none; }.service-scene:nth-child(2) { transition-delay:.08s; }.service-scene:nth-child(3) { transition-delay:.16s; }
.site-header .brand img { width:9.3rem; height:9.3rem; }
h1,h2 { letter-spacing:-.065em; line-height:.91; text-transform:none; } h1 { font-size:clamp(4.65rem,11vw,11.8rem); } h2 { font-size:clamp(3.75rem,7vw,7.7rem); } .service-content h3 { letter-spacing:-.055em; line-height:.9; text-transform:none; } .occasion-card span { letter-spacing:-.05em; line-height:.9; text-transform:none; } .steps h3 { letter-spacing:-.055em; line-height:.95; text-transform:none; }
@media (max-width:900px) { .site-header { position:absolute; }.menu-button { position:relative; z-index:22; display:flex; align-items:center; gap:.65rem; padding:0; color:var(--cream); background:transparent; border:0; font-size:.68rem; font-weight:bold; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }.menu-icon { display:grid; gap:5px; }.menu-icon i { display:block; width:1.55rem; border-top:1px solid currentColor; transition:transform .25s ease; }.site-header nav { position:fixed; z-index:21; inset:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:0; padding:6rem 1.5rem 2rem; color:var(--cream); background:var(--void); opacity:0; pointer-events:none; transform:translateY(-1rem); transition:opacity .25s ease,transform .25s ease; }.site-header nav.is-open { opacity:1; pointer-events:auto; transform:none; }.site-header nav a { width:100%; padding:.65rem 0; border-bottom:1px solid var(--line); font-family:var(--display); font-size:clamp(2.65rem,9vw,5rem); letter-spacing:-.035em; line-height:.9; }.site-header nav a span { float:right; }.site-header nav .nav-cta { width:auto; margin-top:1.5rem; padding:.9rem 1.1rem; color:var(--void); font-family:var(--body); font-size:.7rem; border:1px solid var(--signal); }.site-header nav .nav-mail a { width:auto; padding:0; border:0; font-family:var(--body); font-size:.8rem; letter-spacing:.02em; line-height:1.5; text-transform:none; }.nav-kicker { display:block; margin-bottom:1.3rem; color:var(--signal); font-size:.67rem; font-weight:bold; letter-spacing:.16em; }.nav-mail { display:block; margin:1.5rem 0 0; color:var(--soft); font-size:.8rem; letter-spacing:.04em; text-transform:none; }.site-header.menu-open .menu-icon i:first-child { transform:translateY(3px) rotate(45deg); }.site-header.menu-open .menu-icon i:last-child { transform:translateY(-3px) rotate(-45deg); }.site-header.menu-open .menu-label { font-size:0; }.site-header.menu-open .menu-label::after { content:"Schließen"; font-size:.68rem; }.hero-signature { display:none; }.service-scene { grid-template-columns:3.5rem minmax(0,1fr) minmax(14rem,.8fr); }.occasions { grid-template-columns:1fr; }.occasion-copy { max-width:47rem; }.ordering,.contact-copy { grid-template-columns:1fr; }.contact-copy { align-self:end; }.contact-details { max-width:32rem; }.site-footer { grid-template-columns:1fr auto; }.site-footer > p:not(.copyright) { display:none; }.copyright { grid-column:auto; } }
@media (max-width:620px) { h1 { font-size:clamp(3.2rem,16vw,6rem); } h2 { font-size:clamp(3.4rem,15vw,5.5rem); }.hero { min-height:45rem; padding-bottom:5rem; }.hero-media,.hero-shade { inset:-12%; }.hero-shade { background:linear-gradient(90deg,rgba(4,4,4,.82),rgba(4,4,4,.34)),linear-gradient(0deg,rgba(4,4,4,.73),transparent 48%); }.scroll-prompt { display:none; }.circle-link { width:7.3rem; height:7.3rem; }.manifesto,.ordering { padding-top:6rem; padding-bottom:6rem; }.manifesto-grid { grid-template-columns:1fr; gap:1.6rem; }.services { padding-right:0; padding-left:0; }.services-heading { padding-right:1.15rem; padding-left:1.15rem; }.service-scene { grid-template-columns:2.4rem 1fr; gap:1rem; min-height:0; padding:1.5rem 1.15rem; }.service-content h3 { font-size:clamp(2.5rem,12vw,4rem); }.service-image { grid-column:2; min-height:15rem; margin-top:.8rem; }.occasions { min-height:0; padding-top:6rem; padding-bottom:6rem; }.occasion-showcase { min-height:31rem; }.occasion-card-main { right:23%; }.occasion-card-top { width:32%; height:40%; }.occasion-card-bottom { width:47%; height:auto; }.gallery-heading { grid-template-columns:1fr; gap:0; }.gallery-copy { margin:0; }.gallery-help { margin-top:2rem; }.gallery-rail { gap:.75rem; padding-bottom:1.25rem; }.gallery-card,.gallery-card-wide,.gallery-card-portrait,.gallery-card-square,.gallery-card-video { flex-basis:78vw; height:25rem; }.gallery-card-portrait { flex-basis:62vw; }.gallery-card-video { flex-basis:87vw; }.ordering { gap:2rem; }.steps li { grid-template-columns:2.5rem 1fr; }.contact { min-height:43rem; }.contact-image,.contact-layer { inset:-12%; }.contact-layer { background:linear-gradient(0deg,rgba(12,12,12,.96) 12%,rgba(12,12,12,.35)); }.site-footer { grid-template-columns:1fr; }.site-footer nav { grid-row:3; }.copyright { grid-column:auto; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } .reveal { opacity:1; transform:none; } }

.hero-media img {
  --drift-start:-1.75%;
  --drift-end:1.75%;
  --drift-y-start:-1.75%;
  --drift-y-end:1.75%;
  animation:background-drift 9s -2s ease-in-out infinite alternate;
  will-change:transform;
}

/* Shop access and the two ordering paths. */
.mobile-shop { display:none; }
.site-header nav .nav-cta span[aria-hidden] { color:inherit; }
.site-header nav > a { white-space:nowrap; }
.ordering-options { min-width:0; }
.ordering-shop { padding-bottom:2.5rem; border-bottom:1px solid rgba(12,12,12,.45); }
.ordering-custom { padding:2.5rem 0 1.8rem; }
.ordering-shop h3,.ordering-custom h3 { margin-bottom:1rem; font-family:var(--display); font-size:clamp(2rem,3vw,3.2rem); letter-spacing:-.045em; line-height:1.05; }
.ordering-shop p,.ordering-custom p { max-width:30rem; margin-bottom:1.4rem; }
.shop-button { color:var(--cream); background:var(--void); border-color:var(--void); }
.shop-button:hover,.shop-button:focus-visible { color:var(--void); background:var(--cream); }
.ordering-inquiry { display:inline-flex; align-items:center; gap:.75rem; min-height:2.75rem; font-weight:bold; text-decoration:underline; text-underline-offset:.25em; }
.ordering :focus-visible { outline-color:var(--void); }
.footer-shop { justify-self:start; color:var(--cream); font-weight:bold; }
.footer-shop span { color:var(--signal); }
.footer-shop:hover,.footer-shop:focus-visible { color:var(--signal); }
.site-footer .copyright { grid-column:auto; }
/* Fit the long gallery title to its text column, including tablet layouts. */
.gallery-heading > div { min-width:0; container-type:inline-size; }
.gallery-heading h2 { font-size:min(clamp(3.75rem,7vw,7.7rem),15cqi); overflow-wrap:anywhere; }
@media (min-width:901px) and (max-width:1100px) {
  .site-header .brand img { width:5rem; height:5rem; }
  .site-header nav { gap:1rem; font-size:.65rem; letter-spacing:.08em; }
}
@media (max-width:900px) {
  .site-header { gap:.75rem; }
  .site-header .brand { margin-right:auto; flex-shrink:0; }
  .site-header .brand img { width:5rem; height:5rem; }
  .mobile-shop { display:inline-flex; flex-shrink:0; min-height:2.75rem; padding:.7rem .8rem; }
  .site-header.menu-open .mobile-shop { display:none; }
  .menu-button { flex-shrink:0; min-height:2.75rem; }
  .site-header nav { visibility:hidden; overflow-y:auto; }
  .site-header nav.is-open { visibility:visible; }
  .site-header nav > a { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-shrink:0; font-size:clamp(1.5rem,6vw,3.5rem); }
  .site-header nav > a span { float:none; }
  .site-header nav .nav-cta:hover,.site-header nav .nav-cta:focus-visible { color:var(--cream); }
  .gallery-heading { grid-template-columns:minmax(0,1fr); gap:0; }
  .gallery-copy { margin:0; }
}
@media (max-width:620px) {
  .site-header .brand img { width:4.5rem; height:4.5rem; }
  .site-header .brand { gap:.35rem; font-size:.62rem; }
  .site-header nav { justify-content:flex-start; padding-top:5rem; }
  .site-footer nav { grid-row:auto; }
  .service-scene { grid-template-columns:2.4rem minmax(0,1fr); }
  .service-content { min-width:0; }
  .service-content h3 { font-size:clamp(2rem,9.5vw,3.5rem); overflow-wrap:anywhere; }
  .gallery-heading h2 { font-size:min(clamp(3.4rem,15vw,5.5rem),15cqi); }
}
@media (max-width:380px) {
  .site-header { gap:.5rem; padding-right:.75rem; padding-left:.75rem; }
  .site-header .brand > span { display:none; }
}
.contact-image img {
  --drift-start:1.75%;
  --drift-end:-1.75%;
  --drift-y-start:-1.75%;
  --drift-y-end:1.75%;
  animation:background-drift 11s -4s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes background-drift {
  from { transform:translate3d(var(--drift-start),var(--drift-y-start),0) scale(1.08); }
  to { transform:translate3d(var(--drift-end),var(--drift-y-end),0) scale(1.08); }
}
@media (max-width:620px) {
  .hero-media img { --drift-start:-.9%; --drift-end:.9%; --drift-y-start:-.45%; --drift-y-end:.45%; }
  .contact-image img { --drift-start:.9%; --drift-end:-.9%; --drift-y-start:-.45%; --drift-y-end:.45%; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-media img,.contact-image img {
    animation:none !important;
    transform:none;
    will-change:auto;
  }
}
