.orp-postkasse {
  --orp-letter-paper-color: #fff8e7;
  --orp-letter-paper-image: none;
  --orp-letter-text-color: #2b241c;
  --orp-letter-heading-color: #2a2117;
  --orp-letter-font-family: Georgia, 'Times New Roman', serif;
  --orp-letter-font-size: 18px;
  --orp-close-tab-background: #ead9b5;
  --orp-close-tab-text: #2f281f;
}

.orp-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.orp-envelope-scene {
  min-height: 0;
  padding: 0.35rem 0 0.5rem;
}

.orp-envelope-trigger {
  display: block;
  width: min(760px, 100%);
  margin: 0 auto;
  padding: 0;
  cursor: pointer;
  border: 0;
  border-radius: 18px;
  color: inherit;
  background: transparent;
  filter: drop-shadow(0 22px 24px rgba(48, 34, 19, 0.24));
  transition: transform 0.2s ease, filter 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.orp-envelope-trigger:hover:not(:disabled) {
  transform: translateY(-4px) scale(1.012);
  filter: drop-shadow(0 28px 28px rgba(48, 34, 19, 0.3));
}

.orp-envelope-trigger:active:not(:disabled) {
  transform: translateY(-1px) scale(0.995);
}

.orp-postkasse__shell.is-envelope-opening .orp-envelope-trigger {
  animation: orp-envelope-open 0.52s cubic-bezier(.2,.78,.25,1) both;
}

.orp-postkasse__shell.is-envelope-closing .orp-envelope-trigger {
  animation: orp-envelope-return 0.52s cubic-bezier(.2,.78,.25,1) both;
}

@keyframes orp-envelope-open {
  0% {
    opacity: 1;
    transform: translateY(0) scale(1) rotateX(0deg);
  }
  48% {
    opacity: 1;
    transform: translateY(-10px) scale(1.025) rotateX(-2deg);
  }
  100% {
    opacity: 0;
    transform: translateY(42px) scale(0.86) rotateX(8deg);
  }
}

@keyframes orp-envelope-return {
  0% {
    opacity: 0;
    transform: translateY(42px) scale(0.86) rotateX(8deg);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1) rotateX(0deg);
  }
}

.orp-envelope-trigger:focus-visible,
.orp-letter__close-tab:focus-visible {
  outline: 4px solid rgba(233, 120, 67, 0.58);
  outline-offset: 5px;
}

.orp-envelope-trigger:disabled {
  cursor: wait;
  opacity: 0.68;
}

.orp-envelope-trigger__image {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
  user-select: none;
}

.orp-envelope-help {
  margin: 0.25rem auto 0.45rem;
  color: #4d463c;
  font-size: 0.95rem;
  font-weight: 750;
}

.orp-stage--letter {
  padding-top: clamp(1.5rem, 4vw, 2.5rem);
}

.orp-letter__paper {
  color: var(--orp-letter-text-color);
  background-color: var(--orp-letter-paper-color);
  background-image:
    radial-gradient(circle at 12% 15%, rgba(122, 83, 34, 0.07), transparent 22%),
    radial-gradient(circle at 88% 80%, rgba(122, 83, 34, 0.06), transparent 24%),
    repeating-linear-gradient(0deg, rgba(95, 69, 38, 0.02) 0 1px, transparent 1px 5px),
    var(--orp-letter-paper-image);
  background-position: center;
  background-repeat: no-repeat, no-repeat, repeat, no-repeat;
  background-size: auto, auto, auto, cover;
  font-family: var(--orp-letter-font-family);
}

.orp-letter__header {
  padding-right: clamp(4.8rem, 14vw, 7.5rem);
}

.orp-letter__title,
.orp-letter__content h2,
.orp-letter__content h3 {
  color: var(--orp-letter-heading-color);
  font-family: var(--orp-letter-font-family);
}

.orp-letter__greeting,
.orp-letter__content,
.orp-letter__closing {
  color: var(--orp-letter-text-color);
  font-family: var(--orp-letter-font-family);
  font-size: var(--orp-letter-font-size);
}

.orp-letter__signature strong {
  color: var(--orp-letter-heading-color);
  font-family: var(--orp-letter-font-family);
}

.orp-letter__close-tab {
  position: absolute;
  top: 0;
  right: clamp(0.85rem, 3vw, 1.8rem);
  z-index: 5;
  min-width: 6.4rem;
  min-height: 2.8rem;
  padding: 0.56rem 1rem 0.7rem;
  cursor: pointer;
  border: 1px solid rgba(91, 64, 31, 0.3);
  border-top: 0;
  color: var(--orp-close-tab-text);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.35), transparent 52%),
    var(--orp-close-tab-background);
  box-shadow: 0 5px 12px rgba(54, 38, 20, 0.16);
  clip-path: polygon(0 0, 100% 0, 100% 72%, 88% 100%, 0 100%);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
}

.orp-letter__close-tab:hover:not(:disabled) {
  transform: translateY(2px);
  filter: brightness(1.05);
  box-shadow: 0 3px 8px rgba(54, 38, 20, 0.18);
}

.orp-letter__close-tab:disabled {
  cursor: wait;
  opacity: 0.62;
}

.orp-close-tab-style--rounded .orp-letter__close-tab {
  border-radius: 0 0 12px 12px;
  clip-path: none;
}

.orp-close-tab-style--minimal .orp-letter__close-tab {
  min-width: auto;
  min-height: auto;
  padding: 0.65rem 0.3rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  clip-path: none;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.orp-close-tab-style--minimal .orp-letter__close-tab:hover:not(:disabled) {
  box-shadow: none;
}

.orp-letter__closing:empty {
  display: none;
}

.orp-letter__closing:not(:empty) {
  margin-top: 1.8rem;
  padding: 1rem 1.15rem;
  border-left: 4px solid var(--orp-gold);
  border-radius: 0 8px 8px 0;
  color: var(--orp-letter-text-color);
  background: rgba(213, 173, 90, 0.12);
  font-family: var(--orp-letter-font-family);
  font-size: var(--orp-letter-font-size);
  font-weight: 700;
  line-height: 1.65;
}

.orp-letter__closing:not(:empty) strong,
.orp-letter__closing:not(:empty) b {
  font-weight: 900;
}

@media (max-width: 620px) {
  .orp-envelope-help {
    font-size: 0.9rem;
  }

  .orp-letter__header {
    padding-right: 4.4rem;
  }

  .orp-letter__close-tab {
    right: 0.7rem;
    min-width: 5.2rem;
    min-height: 2.5rem;
    padding: 0.48rem 0.65rem 0.62rem;
    font-size: 0.76rem;
  }

  .orp-close-tab-style--minimal .orp-letter__close-tab {
    min-width: auto;
    min-height: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .orp-envelope-trigger,
  .orp-letter__close-tab {
    transition: none;
  }

  .orp-postkasse__shell.is-envelope-opening .orp-envelope-trigger,
  .orp-postkasse__shell.is-envelope-closing .orp-envelope-trigger {
    animation: none;
  }

  .orp-envelope-trigger:hover:not(:disabled),
  .orp-envelope-trigger:active:not(:disabled),
  .orp-letter__close-tab:hover:not(:disabled) {
    transform: none;
  }
}
