.contact-page { overflow: hidden; background: #17130f; }
.contact-stage { min-height: 100svh; overflow: clip; background: #17130f; }
.contact-stage::before { display: none; }
.contact-page .home-nav { z-index: 20; }
.contact-page .home-nav__brand { filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .7)); }
.contact-page .hamburger { display: grid; place-items: initial; width: 2.5rem; height: 2.5rem; border: 0; padding: .55rem 0; background: transparent; cursor: pointer; }
.contact-page .sound-control { z-index: 20; }
.office-scene { position: absolute; top: 50%; left: 50%; width: max(100vw, 150vh); aspect-ratio: 3 / 2; background: #17130f; transform: translate(-50%, -50%) scale(1); transform-origin: 58% 68%; transition: transform 1.2s cubic-bezier(.65, 0, .2, 1), filter .8s ease; }
.office-scene__architecture { position: absolute; z-index: 2; inset: 0; display: block; pointer-events: none; }
.office-scene__architecture img { display: block; width: 100%; height: 100%; object-fit: fill; }
.season-window { position: absolute; z-index: 1; top: 5.2%; left: 66.4%; width: 27.7%; height: 65.2%; overflow: hidden; opacity: 1; }
.season-window img { width: 100%; height: 100%; object-fit: cover; }
.season-window::after { display: none; }
.office-light { position: absolute; z-index: 3; inset: 0; pointer-events: none; background: radial-gradient(circle at 81% 27%, rgba(255, 243, 218, .055), transparent 28%); animation: officeBreath 9s ease-in-out infinite alternate; }
.contact-copy { position: absolute; z-index: 6; top: clamp(8rem, 19.5vh, 12rem); left: clamp(2rem, 8.1vw, 8rem); width: min(25rem, 28vw); color: #fffaf2; text-shadow: 0 2px 18px rgba(0, 0, 0, .8); transition: opacity .6s ease, transform .8s ease; }
.contact-copy p { margin: 0 0 1.2rem; font-size: clamp(.55rem, .58vw, .72rem); font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.contact-copy h1 { margin: 0; font-family: var(--font-serif); font-size: clamp(2.3rem, 3.55vw, 4.6rem); font-weight: 400; letter-spacing: -.025em; line-height: .98; }
.contact-copy > span { display: block; margin-top: 1.3rem; font-size: clamp(.75rem, .95vw, 1.14rem); letter-spacing: .025em; line-height: 1.5; }
.living-letter { position: absolute; z-index: 5; top: 45.5%; left: 20.3%; width: 61.8%; height: 40%; overflow: visible; color: #3d332b; background: radial-gradient(circle at 72% 18%, rgba(255,255,255,.34), transparent 28%), linear-gradient(112deg, #efe2cf, #e8d5ba 58%, #f0e0ca); clip-path: polygon(15.5% 0, 82.5% 0, 100% 100%, 0 100%); box-shadow: 0 1rem 1.2rem rgba(21, 13, 7, .38); transform: perspective(90rem) rotateX(1deg); transform-origin: center bottom; transition: transform 1.15s cubic-bezier(.65, 0, .2, 1), filter .6s ease, opacity .65s ease; }
.living-letter::before, .living-letter::after { position: absolute; z-index: 12; right: 8%; left: 8%; height: 7%; content: ""; opacity: 0; pointer-events: none; transform: scaleY(0); }
.living-letter::before { top: 31%; background: linear-gradient(180deg, transparent, rgba(73, 48, 27, .18), rgba(255,255,255,.24), transparent); transform-origin: center; }
.living-letter::after { top: 64%; background: linear-gradient(180deg, transparent, rgba(255,255,255,.24), rgba(73, 48, 27, .2), transparent); transform-origin: center; }
.fold-visual { position: absolute; z-index: 20; inset: 0; opacity: 0; perspective: 75rem; pointer-events: none; }
.fold-panel { position: absolute; left: 0; width: 100%; height: 33.4%; overflow: hidden; background: linear-gradient(112deg, #efe2cf, #e8d5ba 58%, #f0e0ca); backface-visibility: hidden; box-shadow: 0 .18rem .35rem rgba(67, 45, 28, .14); }
.fold-panel::after { position: absolute; right: 18%; left: 18%; top: 28%; height: 34%; content: ""; opacity: .28; background: repeating-linear-gradient(180deg, #66564a 0 1px, transparent 1px 1.15rem); }
.fold-panel--top { top: 0; clip-path: polygon(15.5% 0, 82.5% 0, 89% 100%, 10% 100%); transform-origin: bottom; }
.fold-panel--middle { top: 33.3%; }
.fold-panel--bottom { bottom: 0; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transform-origin: top; }
.packet-fold { position: absolute; z-index: 21; inset: 0; opacity: 0; perspective: 75rem; pointer-events: none; }
.packet-panel { position: absolute; top: 33.3%; width: 33.4%; height: 33.4%; background: linear-gradient(112deg, #efe2cf, #e8d5ba 58%, #f0e0ca); backface-visibility: hidden; box-shadow: 0 .16rem .32rem rgba(67,45,28,.18); }
.packet-panel::after { position: absolute; inset: 26% 14%; content: ""; opacity: .25; background: repeating-linear-gradient(180deg, #66564a 0 1px, transparent 1px .9rem); }
.packet-panel--left { left: 0; transform-origin: right; }
.packet-panel--center { left: 33.3%; }
.packet-panel--right { right: 0; transform-origin: left; }
.letter-invitation, .letter-fields { position: absolute; inset: 0; clip-path: polygon(15.5% 0, 82.5% 0, 100% 100%, 0 100%); }
.letter-invitation { z-index: 2; display: grid; align-content: center; justify-items: start; border: 0; padding: 4% 18% 5% 24%; color: #504238; background: transparent; text-align: left; cursor: pointer; }
.letter-invitation strong { font: 400 clamp(.75rem, 1vw, 1.2rem)/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
.letter-invitation span { margin-top: .8rem; font: 400 clamp(.68rem, .88vw, 1.05rem)/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; }
.letter-invitation i { width: 1px; height: 1.15em; margin-top: .3rem; background: currentColor; animation: cursorBlink 1.1s steps(1) infinite; }
.letter-invitation:hover { transform: translateY(-.3rem); }
.letter-fields { visibility: hidden; opacity: 0; padding: 3.6% 15% 4% 16%; transition: opacity .5s ease .35s, visibility .5s ease .35s; }
.letter-brand { position: absolute; top: 3%; left: 50%; font: 400 clamp(1rem, 1.45vw, 1.8rem)/1 var(--font-serif); transform: translateX(-50%); }
.letter-date { position: absolute; top: 12%; right: 19%; margin: 0; font: 600 clamp(.42rem, .48vw, .62rem)/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.letter-message { position: absolute; top: 30%; left: 17%; width: 58%; }
.letter-message > span { display: block; margin-bottom: .5rem; font: 400 clamp(.65rem, .78vw, .96rem)/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; }
.letter-message textarea { width: 100%; height: clamp(4rem, 9vh, 7.2rem); border: 0; padding: 0; color: #3d332b; background: transparent; resize: none; outline: 0; font: 400 clamp(.68rem, .78vw, .98rem)/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; }
.letter-message textarea::placeholder { color: rgba(61, 51, 43, .55); }
.letter-signoff { position: absolute; bottom: 28%; left: 17%; margin: 0; font: 400 clamp(.58rem, .7vw, .88rem)/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; }
.letter-details { position: absolute; right: 19%; bottom: 13%; left: 16%; display: grid; grid-template-columns: 1fr 1fr; }
.letter-details label { position: relative; padding: 0 1rem .3rem; border-bottom: 1px solid rgba(61, 51, 43, .28); }
.letter-details label + label { border-left: 1px solid rgba(61, 51, 43, .2); }
.letter-details span { display: block; margin-bottom: .25rem; font: 600 clamp(.4rem, .45vw, .58rem)/1.2 var(--font-sans); letter-spacing: .2em; text-transform: uppercase; }
.letter-details input { width: 100%; border: 0; padding: 0; color: #3d332b; background: transparent; outline: 0; font: 400 clamp(.62rem, .72vw, .9rem)/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
.letter-details input::placeholder { color: rgba(61, 51, 43, .48); }
.field-error { display: block; min-height: .85rem; color: #8b2f25; font: 700 clamp(.38rem, .43vw, .54rem)/1.25 var(--font-sans); letter-spacing: .02em; }
.letter-message .field-error { margin-top: .18rem; }
.letter-details .field-error { position: absolute; top: calc(100% + .22rem); left: 1rem; white-space: nowrap; }
.letter-message textarea[aria-invalid="true"], .letter-details input[aria-invalid="true"] { box-shadow: 0 1px 0 #9c392d; }
.letter-details input:-webkit-autofill,
.letter-details input:-webkit-autofill:hover,
.letter-details input:-webkit-autofill:focus { -webkit-text-fill-color: #3d332b; caret-color: #3d332b; box-shadow: 0 0 0 1000px #ecddc8 inset; transition: background-color 9999s ease-out; }
.letter-message textarea:focus, .letter-details input:focus { box-shadow: 0 1px 0 #8d6428; }
.letter-honeypot { position: absolute; left: -9999px; }
.seal-send { position: absolute; right: 8.4%; bottom: 2.7%; display: grid; grid-template-areas: "seal" "label"; align-items: center; justify-items: center; row-gap: .35rem; border: 0; padding: 0; color: #3d332b; background: transparent; font: 700 clamp(.43rem, .55vw, .68rem)/1 var(--font-sans); letter-spacing: .22em; text-transform: uppercase; cursor: pointer; }
.wax-seal { position: relative; grid-area: seal; display: grid; place-items: center; width: clamp(4.8rem, 6.6vw, 7.5rem); aspect-ratio: 1; background: url("/assets/img/wax-seal-real.avif") center / contain no-repeat; filter: drop-shadow(0 .3rem .28rem rgba(37, 24, 13, .34)); transition: transform .38s cubic-bezier(.2, .75, .25, 1), filter .38s ease; }
.wax-seal img { position: relative; z-index: 2; width: 45%; height: 45%; filter: drop-shadow(0 .08rem .08rem rgba(0, 0, 0, .72)); }
.seal-send > span:nth-child(2) { grid-area: label; }
.seal-send:disabled { color: rgba(61, 51, 43, .5); cursor: default; }
.seal-send:disabled .wax-seal { filter: saturate(.92) brightness(.96) drop-shadow(0 .3rem .28rem rgba(37, 24, 13, .3)); }
.seal-send:hover .wax-seal { filter: saturate(1.06) brightness(1.06) drop-shadow(0 .6rem .48rem rgba(37, 24, 13, .42)); transform: translateY(-.22rem) rotate(-1.5deg) scale(1.025); }
.seal-send:hover > span:nth-child(2) { letter-spacing: .27em; }
.seal-send:hover b { transform: translateX(.22rem); }
.seal-send:not(:disabled):hover .wax-seal { filter: saturate(1.12) brightness(1.12) drop-shadow(0 .7rem .55rem rgba(37, 24, 13, .48)); transform: translateY(-.3rem) rotate(-2.5deg) scale(1.04); }
.seal-send:active .wax-seal { transform: translateY(.08rem) scale(.97); transition-duration: .1s; }
.seal-send > span:nth-child(2), .seal-send b { transition: letter-spacing .3s ease, transform .3s ease, color .3s ease; }
.seal-send b { position: absolute; right: -1.35rem; bottom: -.18rem; font-size: 1rem; }
.letter-error { position: absolute; right: 20%; bottom: 1%; margin: 0; color: #842f24; font: 700 clamp(.45rem, .55vw, .68rem)/1.3 var(--font-sans); }
.contact-page.is-writing .office-scene { transform: translate(-50%, -50%) scale(1.085); }
.contact-page.is-writing .contact-copy { opacity: .1; transform: translateX(-2rem); }
.contact-page.is-writing .letter-invitation { visibility: hidden; opacity: 0; }
.contact-page.is-writing .letter-fields { visibility: visible; opacity: 1; }
.envelope { position: absolute; top: 63%; left: 50%; width: min(23rem, 28vw); aspect-ratio: 1.65; opacity: 0; background: transparent; filter: drop-shadow(0 1.2rem 1rem rgba(0, 0, 0, .45)); transform: translate(-50%, -42%) scale(.72); pointer-events: none; perspective: 70rem; }
.envelope::before, .envelope::after { position: absolute; inset: 0; content: ""; }
.envelope::before { z-index: 7; background: linear-gradient(145deg, #28594a, #0b211b); }
.envelope::after { z-index: 11; clip-path: polygon(0 0, 50% 63%, 100% 0, 100% 100%, 0 100%); background: linear-gradient(145deg, #214a3e, #0b211b); box-shadow: inset 0 1px rgba(255,255,255,.09); }
.envelope-flap { position: absolute; z-index: 12; inset: 0; clip-path: polygon(0 0, 100% 0, 50% 64%); background: linear-gradient(160deg, #326555, #153b31); transform: rotateX(178deg); transform-origin: top; transition: transform 1s cubic-bezier(.3, .7, .2, 1); }
.envelope-seal { position: absolute; z-index: 13; top: 42%; left: 50%; display: grid; place-items: center; width: 18%; aspect-ratio: 1; border-radius: 50%; background: url("/assets/img/wax-seal-real.avif") center / contain no-repeat; opacity: 0; filter: drop-shadow(0 .3rem .3rem rgba(0,0,0,.42)); transform: translate(-50%, -50%) scale(1.8); }
.envelope-seal img { width: 43%; filter: drop-shadow(0 .05rem .08rem rgba(0,0,0,.7)); }
.messenger-rig { position: absolute; z-index: 14; top: 2%; left: -42%; width: min(34rem, 34vw); aspect-ratio: 3 / 2; opacity: 0; pointer-events: none; }
.messenger-owl { position: absolute; z-index: 2; inset: 0; width: 100%; filter: drop-shadow(0 1.2rem 1rem rgba(0, 0, 0, .32)); transform-origin: 58% 58%; animation: owlWingBeat .72s ease-in-out infinite alternate; }
.carried-envelope { position: absolute; z-index: 1; top: 70%; left: 56%; width: 27%; aspect-ratio: 1.65; opacity: 0; background: linear-gradient(145deg, #28594a, #0b211b); box-shadow: 0 .6rem .8rem rgba(0,0,0,.38); transform: translate(-50%, -50%) rotate(3deg); }
.carried-envelope::before { position: absolute; inset: 0; clip-path: polygon(0 0, 50% 63%, 100% 0, 100% 100%, 0 100%); background: linear-gradient(145deg, #214a3e, #0b211b); content: ""; }
.carried-envelope__seal { position: absolute; z-index: 2; top: 43%; left: 50%; width: 18%; aspect-ratio: 1; background: url("/assets/img/wax-seal-real.avif") center / contain no-repeat; transform: translate(-50%, -50%); }
.letter-confirmation { position: absolute; z-index: 10; inset: 0; display: grid; align-content: center; justify-items: center; color: #f5eee4; background: rgba(9, 22, 18, .94); opacity: 0; text-align: center; visibility: hidden; }
.letter-confirmation > img { width: clamp(7rem, 10vw, 10rem); margin-bottom: 3rem; filter: brightness(0) invert(1); }
.confirmation-envelope { font-size: 2rem; }
.letter-confirmation h2 { margin: 1.25rem 0 .9rem; font-family: var(--font-serif); font-size: clamp(3rem, 5vw, 5.5rem); font-weight: 400; line-height: .92; }
.letter-confirmation p { margin: 0; color: rgba(245, 238, 228, .7); line-height: 1.55; }
.letter-confirmation a { margin-top: 2.4rem; color: inherit; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; }
.delivery-canvas { position: absolute; z-index: 15; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; }
.delivery-canvas.is-active { opacity: 1; }
.contact-page.is-sending .contact-copy, .contact-page.is-sending .living-letter { opacity: 0; visibility: hidden; }
.contact-page.is-folding .contact-copy { opacity: 0; }
.contact-page.is-folding .living-letter { z-index: 9; overflow: visible; background: transparent; clip-path: none; box-shadow: none; transform-origin: center; animation: foldLetter 2.6s cubic-bezier(.62, 0, .2, 1) forwards; }
.contact-page.is-folding .fold-visual { opacity: 1; }
.contact-page.is-folding .fold-panel--bottom { animation: foldBottom .95s cubic-bezier(.55, 0, .2, 1) .25s forwards; }
.contact-page.is-folding .fold-panel--top { animation: foldTop 1.05s cubic-bezier(.55, 0, .2, 1) 1.15s forwards; }
.contact-page.is-folding .fold-visual { animation: hideHorizontalFold .01s linear 1.95s forwards; }
.contact-page.is-folding .packet-fold { animation: showPacketFold .01s linear 1.95s forwards; }
.contact-page.is-folding .packet-panel--left { animation: foldLeft .55s cubic-bezier(.55, 0, .2, 1) 2s forwards; }
.contact-page.is-folding .packet-panel--right { animation: foldRight .55s cubic-bezier(.55, 0, .2, 1) 2.5s forwards; }
.contact-page.is-folding .letter-fields { opacity: 0; transition: opacity .2s ease; }
.contact-page.is-enveloping .living-letter { animation: insertLetter 1.8s cubic-bezier(.55, 0, .18, 1) forwards; }
.contact-page.is-envelope-ready .envelope { animation: showEnvelope 1.15s cubic-bezier(.2, .7, .2, 1) forwards; }
.contact-page.is-sealing .living-letter { opacity: 0; }
.contact-page.is-sealing .envelope-flap { transform: rotateX(0); }
.contact-page.is-sealing .envelope-seal { animation: stampSeal .65s cubic-bezier(.2, .9, .25, 1.2) .65s forwards; }
.contact-page.is-delivering .messenger-rig { animation: owlApproach 1.85s cubic-bezier(.25, .05, .22, 1) forwards; }
.contact-page.is-picking-up .envelope { animation: envelopeHandoff .8s cubic-bezier(.3, .75, .25, 1) forwards; }
.contact-page.is-flying .messenger-rig { animation: owlExit 2.8s cubic-bezier(.45, 0, .7, .45) forwards; }
.messenger-rig .envelope.is-carried { z-index: 1; top: 70%; left: 56%; width: 27%; opacity: 1; filter: drop-shadow(0 .45rem .5rem rgba(0,0,0,.42)); transform: translate(-50%, -50%) scale(1) rotate(3deg); animation: none; }
.contact-page.is-confirmed .letter-confirmation { visibility: visible; animation: showConfirmation .8s ease forwards; }

@keyframes cursorBlink { 50% { opacity: 0; } }
@keyframes officeBreath { to { opacity: .55; transform: translateX(-1.5%); } }
@keyframes foldBottom { 0% { transform: rotateX(0); } 100% { transform: rotateX(178deg); filter: brightness(.91); } }
@keyframes foldTop { 0% { transform: rotateX(0); } 100% { transform: rotateX(-178deg); filter: brightness(.95); } }
@keyframes hideHorizontalFold { to { opacity: 0; } }
@keyframes showPacketFold { to { opacity: 1; } }
@keyframes foldLeft { to { transform: rotateY(-179deg); filter: brightness(.92); } }
@keyframes foldRight { to { transform: rotateY(179deg); filter: brightness(.88); } }
@keyframes foldLetter { 0% { transform: perspective(90rem) rotateX(1deg); } 15%, 100% { transform: perspective(90rem) rotateX(-3deg) translateY(-8%) scale(1.025); filter: drop-shadow(0 1.2rem 1rem rgba(0,0,0,.3)); } }
@keyframes insertLetter { 0% { opacity: 1; transform: perspective(90rem) rotateX(-3deg) translateY(-8%) scale(1.025); } 70% { opacity: 1; transform: perspective(90rem) rotateX(0) translateY(9%) scale(.96); } 100% { opacity: 0; transform: perspective(90rem) translateY(24%) scale(.92); } }
@keyframes showEnvelope { from { opacity: 0; transform: translate(-50%, -42%) scale(.72); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes stampSeal { 0% { opacity: 0; transform: translate(-50%, -50%) scale(1.8) rotate(-7deg); } 70% { opacity: 1; transform: translate(-50%, -50%) scale(.88) rotate(2deg); } 100% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(0); } }
@keyframes owlWingBeat { from { transform: translateY(-.35%) rotate(-.4deg); } to { transform: translateY(.7%) rotate(.5deg); } }
@keyframes owlApproach { 0% { left: -42%; top: 0; opacity: 0; transform: rotate(5deg) scale(.88); } 24% { opacity: 1; } 72% { left: 27%; top: 23%; transform: rotate(-3deg) scale(.94); } 100% { left: 33%; top: 28%; opacity: 1; transform: rotate(-1deg) scale(.92); } }
@keyframes envelopeHandoff { 0% { top: 63%; left: 50%; opacity: 1; transform: translate(-50%, -50%) scale(1); } 100% { top: 47%; left: 52%; opacity: 1; transform: translate(-50%, -50%) scale(.33) rotate(3deg); } }
@keyframes envelopeFly { 0% { top: 47%; left: 52%; opacity: 1; transform: translate(-50%, -50%) scale(.33) rotate(3deg); } 18% { top: 42%; left: 57%; transform: translate(-50%, -50%) scale(.34) rotate(5deg); } 100% { top: -12%; left: 127%; opacity: 0; transform: translate(-50%, -50%) scale(.26) rotate(13deg); } }
@keyframes owlExit { 0% { left: 33%; top: 28%; opacity: 1; transform: rotate(-1deg) scale(.92); } 18% { left: 38%; top: 22%; transform: rotate(1deg) scale(.96); } 100% { left: 108%; top: -31%; opacity: 0; transform: rotate(8deg) scale(.72); } }
@keyframes showConfirmation { to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
    .office-light, .letter-invitation i { animation: none; }
    .office-scene, .living-letter, .contact-copy { transition-duration: .01ms; }
    .contact-page.is-folding .living-letter, .contact-page.is-enveloping .envelope, .contact-page.is-delivering .envelope { animation-duration: .01ms; }
}

@media (max-width: 760px) {
    .office-scene { top: 0; left: 50%; width: auto; height: 100svh; aspect-ratio: 2 / 3; transform: translateX(-60%); transform-origin: 50% 73%; }
    .season-window { top: 6.2%; left: 62.1%; width: 31.4%; height: 40.7%; }
    .contact-copy { top: 6.5rem; left: 1.65rem; width: min(16rem, 66vw); }
    .contact-copy p { margin-bottom: .6rem; }
    .contact-copy h1 { font-size: clamp(2.25rem, 10vw, 3.7rem); line-height: .9; }
    .contact-copy > span { display: block; margin-top: .9rem; font-size: .72rem; }
    .living-letter { top: auto; bottom: 4%; left: 28%; width: 65%; height: 35%; transform: perspective(70rem) rotateX(1deg); }
    .letter-invitation, .letter-fields { clip-path: polygon(8% 0, 92% 0, 100% 100%, 0 100%); }
    .letter-invitation { padding: 6% 12% 8% 14%; }
    .contact-page.is-writing .office-scene { transform: translateX(-60%); }
    .contact-page.is-writing .living-letter { position: fixed; z-index: 30; top: 6%; left: 25.5%; width: 69%; height: 88%; color: #3d332b; background: linear-gradient(112deg, #efe2cf, #e8d5ba 58%, #f0e0ca); clip-path: none; transform: none; }
    .contact-page.is-writing .letter-fields { clip-path: none; padding: 2rem 1.4rem; }
    .contact-page.is-writing .letter-brand { top: 1.5rem; }
    .contact-page.is-writing .letter-date { top: 4rem; right: 1.4rem; }
    .contact-page.is-writing .letter-message { top: 6.5rem; left: 1.4rem; width: calc(100% - 2.8rem); }
    .contact-page.is-writing .letter-message textarea { height: 32vh; font-size: 1rem; }
    .contact-page.is-writing .letter-signoff { bottom: 16.2rem; left: 1.4rem; font-size: .85rem; }
    .contact-page.is-writing .letter-details { right: 1.4rem; bottom: 7.8rem; left: 1.4rem; grid-template-columns: 1fr; gap: 1rem; }
    .contact-page.is-writing .letter-details label + label { border-left: 0; }
    .contact-page.is-writing .seal-send { right: 50%; bottom: 1.25rem; transform: translateX(50%); }
    .contact-page.is-writing .wax-seal { width: 5.8rem; }
    .contact-page.is-writing .letter-error { bottom: 5.6rem; left: 1.4rem; }
    .envelope { top: 66%; width: 62%; }
    .messenger-rig { top: 18%; width: 92vw; }
}

.contact-page, .contact-stage { background: #17130f; }
.contact-copy p { color: var(--season-accent); }
.contact-copy > span { color: var(--season-main); }
.seal-send:not(:disabled) { color: #3d332b; }

.season-window img {
    object-position: var(--season-window-position, 72% 31%);
    transform: scale(1.04);
}
