/* v63 — one continuous sky, with the invitation embedded in its centre. */
#together{height:100svh;min-height:560px;padding:28px clamp(22px,5vw,80px);background:#243b4c}
#together .light-wrap{max-width:none;width:100%;position:static}
#together .light-topline{position:relative;z-index:6;border:0;padding:0;font-size:11px}
#together .light-layout{display:block;position:static;padding:0}
#together .light-stage{position:absolute;inset:0;min-height:0;height:100%;z-index:1;pointer-events:none}
#together .light-atmosphere{inset:0;z-index:0;overflow:hidden}
#together .light-star-trails{opacity:.38}
#together .light-distance{opacity:1;mask-image:radial-gradient(ellipse 18% 20% at 50% 38%,#0006,#000 100%)}
#together .light-distant{animation-name:light-full-ascend;rotate:var(--tilt);filter:drop-shadow(0 0 5px #f3cc7545)}
@keyframes light-full-ascend{0%{opacity:0;transform:translateY(0) scale(1)}8%{opacity:var(--glow)}88%{opacity:var(--glow)}100%{opacity:0;transform:translateY(-125svh) scale(.7)}}
#together .light-copy{position:absolute;top:22%;left:50%;translate:-50% 0;width:min(460px,calc(100% - 48px));padding:0;min-height:0;text-align:center;z-index:3;pointer-events:none;text-shadow:0 2px 14px #243b4ccc}
#together .light-copy::before{content:'';position:absolute;inset:-60px -65px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#243b4c80, #243b4c25 45%,transparent 72%)}
#together .light-copy h2{font-size:clamp(44px,5vw,72px);font-weight:400;letter-spacing:.13em;text-indent:.13em;margin:18px 0 17px;line-height:1.25}
#together .light-eyebrow{font-size:12px;letter-spacing:.18em}
#together .light-intro{max-width:none;font-size:16px;line-height:1.9;letter-spacing:.09em}
#together .light-write{position:static;pointer-events:auto;margin:25px auto 0;min-width:138px;min-height:46px;padding:11px 24px;border-radius:999px;font-size:15px;text-shadow:none}
#together .light-reading-field{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
#together .light-message{pointer-events:auto;display:flex;flex-direction:column;justify-content:center;gap:0;padding:0;min-width:44px;min-height:44px;border:0}
#together .light-message svg{max-width:none}
#together .light-message-copy{flex:0;position:absolute;top:100%;left:50%;translate:-50% 0;width:max-content;opacity:.75}
#together .light-message-tag{font-size:10px;letter-spacing:.1em;margin:0;padding:0;height:auto}
#together .light-message-text,#together .light-message-tag small{display:none}
#together .light-message:nth-child(2n) .light-message-copy{display:none}
#together .light-stage-bottom{position:absolute;bottom:61px;left:0;width:100%;justify-content:center;padding:0;font-size:11px;z-index:3}
#together .light-page{display:none}
#together .light-footer{position:relative;z-index:5;border:0;padding:0;margin-top:auto;font-size:9px}
#together[data-view=reading] .light-stage,#together[data-view=writing] .light-stage{z-index:4}
#together .light-letter,#together .light-editor{pointer-events:auto}
#together .light-editor{inset:50% auto auto 50%;translate:-50% -50%;width:min(460px,calc(100% - 36px));height:min(490px,calc(100% - 140px));padding:22px 26px;background:#2a4353fa;border:1px solid #d6bf864a;box-shadow:0 20px 80px #142a4390;z-index:8}
#together[data-view=writing] .light-copy,#together[data-view=flying] .light-copy{visibility:hidden}
#together .light-editor .light-steps{display:flex;justify-content:space-between;font-size:12px;margin:20px 0 8px;gap:12px}
#together .light-editor .light-write-note{position:static;width:auto;margin:0 0 12px;font-size:11px}
#together .light-close{min-height:36px;padding:8px 0}
#together .light-send{min-height:44px}
#together .light-flight{left:50%;top:65%}
@media(max-width:720px){
 #together{min-height:560px;padding:20px 22px}
 #together .light-topline{font-size:10px}
 #together .light-copy{top:23%;width:calc(100% - 52px)}
 #together .light-copy::before{inset:-40px -18px}
 #together .light-copy h2{font-size:44px;margin:17px 0 15px}
 #together .light-eyebrow{font-size:11px;letter-spacing:.1em}
 #together .light-intro{font-size:14px;line-height:1.85}
 #together .light-write{margin-top:22px;min-height:44px;font-size:14px}
 #together .light-distant:nth-child(4n){display:none}
 #together .light-stage-bottom{bottom:65px;font-size:10px}
 #together .light-footer{font-size:8px;gap:18px;align-items:end}
 #together .light-footer>span:last-child{max-width:190px;text-align:right}
 #together .light-editor{padding:16px 19px;height:min(450px,calc(100% - 120px))}
 #together .light-writing-paper textarea{max-height:160px}
}
@media(prefers-reduced-motion:reduce){
 #together .light-reading-field{inset:64% 16px 90px;overflow-y:auto;display:flex;flex-wrap:wrap;justify-content:center;align-content:start;pointer-events:auto}
 #together .light-message{margin:8px 12px 20px;position:relative;flex-shrink:0}
 #together .light-message-copy{display:block}
 #together .light-distance{opacity:.55}
}

/* Depth cues remain subtle: only distant paper edges soften. */
#together .light-depth-far{filter:blur(.35px) drop-shadow(0 0 3px #f3cc7520)}
#together .light-depth-middle{filter:drop-shadow(0 0 5px #f3cc7530)}

/* Converted middle lights retain their depth and generous touch targets. */
#together .light-readable-middle svg{opacity:.65}
#together .light-readable-middle.is-held svg{opacity:1}
#together .light-readable-middle .light-message-copy{display:none}

/* Upper lights dissolve before reaching the page navigation. */
#together .light-distance{mask-image:linear-gradient(transparent 0,#000 95px,#000 calc(100% - 35px),transparent)}
#together .light-copy::before{background:none}

/* Lamps stay behind the central copy even while a reader is open. */
#together[data-view=browse] .light-stage,#together[data-view=reading] .light-stage{z-index:auto}
#together .light-stage{isolation:auto}
#together .light-copy{z-index:3}
#together .light-letter{z-index:8}

/* Reduced-density live composition: quiet labels, fully interactive lamps. */
#together.is-composition .light-message-copy{display:none!important}

/* One motion model; do not also animate these lamps in CSS. */
#together .light-distant{animation:none!important;top:0;bottom:auto;rotate:0deg;will-change:transform}
#together .light-distance{mask-image:none}
#together .light-distant:nth-child(4n){display:block}
#together .light-readable-middle svg{opacity:.76}

/* v73: stable reader shell; only the message body scrolls. */
#together .light-letter{max-height:min(350px,calc(100dvh - 96px));overflow:hidden}
#together .light-letter .light-editor-head,#together .light-letter-heading,#together .light-read-note{flex-shrink:0}
#together .light-letter-text{min-height:0;max-height:180px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#d8bd80 #233c493d;padding-right:10px;scrollbar-gutter:stable}
#together .light-letter-text::-webkit-scrollbar{width:5px}
#together .light-letter-text::-webkit-scrollbar-track{background:#233c493d;border-radius:6px}
#together .light-letter-text::-webkit-scrollbar-thumb{background:#d8bd80;border-radius:6px}
#together .light-readable-middle svg{opacity:.66}
@media(max-width:720px){#together .light-letter{max-height:min(310px,calc(100dvh - 96px))}#together .light-letter-text{max-height:150px}}
