/* One blue envelope, a white ballot, and a scroll-controlled closing gesture. */
.opening-sheet{overflow:visible;isolation:isolate;perspective:1100px;color:#f4f6ff;border:1px solid #b3d4ff85;border-radius:8px;background:linear-gradient(135deg,#284778,#15243e 65%,#412841);box-shadow:-12px 0 48px #326fff35,15px 8px 48px #ff426b25,0 28px 60px #0009,inset 0 1px 0 #e7f1ff75}
.opening-sheet:before,.opening-sheet:after,.opening-flap{display:none!important}
.envelope-lid{position:absolute;inset:0 0 auto;height:74%;background:linear-gradient(150deg,#4973b3,#1c3054 70%,#57334f);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;transform:rotateX(calc(-180deg + var(--envelope-seal,0) * 180deg));z-index:calc(1 + var(--envelope-seal,0) * 5);backface-visibility:visible;filter:drop-shadow(0 1px 1px #bed9ff80)}
.opening-copy{position:absolute;left:17%;top:-53%;width:66%;height:auto;aspect-ratio:1;padding:12% 5% 0!important;display:flex;justify-content:flex-start;align-items:center;gap:0;background:linear-gradient(135deg,#fff,#f1f1ec);border:1px solid #fff;border-radius:3px;color:#13213a;box-shadow:0 -8px 30px #0003;transform:translateY(calc(var(--ballot-insert,0) * 115%));z-index:2;overflow:hidden}
.opening-copy:after{content:'';width:44px;height:2px;background:linear-gradient(90deg,#4778ff 33%,#b6bfce 33% 66%,#ff4a59 66%);margin-top:18px;flex:none}
.opening-slogan{font-family:'Avote Editorial',Georgia,serif!important;font-size:clamp(24px,3.2vw,43px)!important;font-weight:400!important;line-height:1.13!important;letter-spacing:-1px!important;white-space:normal!important;padding:0!important;text-shadow:none!important;color:#14223a!important}
.opening-slogan span{color:#d23d5d!important;text-shadow:none!important}.opening-copy .opening-promise{display:none}
.envelope-pocket{position:absolute;inset:0;z-index:3;border-radius:0 0 7px 7px;background:radial-gradient(ellipse at 0 0,#386cc3b3,transparent 80%),radial-gradient(ellipse at 100% 100%,#9b355d99,transparent 65%),linear-gradient(135deg,#233b65,#16233c 65%,#44273e);clip-path:polygon(0 0,50% 68%,100% 0,100% 100%,0 100%);box-shadow:inset 0 -1px #a4bded66}
.envelope-pocket:before{content:'';position:absolute;inset:0;background:linear-gradient(33deg,transparent 49.6%,#abcfff55 50%,transparent 50.4%),linear-gradient(-33deg,transparent 49.6%,#abcfff55 50%,transparent 50.4%),repeating-linear-gradient(115deg,transparent 0 3px,#c4dbff06 3px 4px)}
.envelope-pocket:after{content:'';position:absolute;bottom:13%;left:42%;width:16%;height:3px;background:linear-gradient(90deg,#5685ff 32%,#e7efff 35% 65%,#ff5473 68%);box-shadow:0 0 14px #b6cbff44}
.scene:not(.webgl-ready) .paper{opacity:var(--paper-show)!important}.scene:not(.webgl-ready) .paper-bottom,.inside-envelopes>i{background:linear-gradient(135deg,#31558d,#192a4b 57%,#67304b)!important}.scene:not(.webgl-ready) .paper-top{background:linear-gradient(145deg,#4269a5,#202f50 70%,#61314b)!important}
@media(max-width:700px){.opening-slogan{font-size:clamp(19px,5.5vw,27px)!important;letter-spacing:-.65px!important}.opening-copy{padding-top:13%!important}.opening-copy:after{margin-top:12px;width:33px}.mobile-intro-note strong{font-size:clamp(17px,4.8vw,22px)}}
@media(max-height:670px) and (max-width:700px){.mobile-intro-note p{display:none}}
.ballot-window{position:absolute;inset:-60% 0 0;overflow:hidden;z-index:2;pointer-events:none}.ballot-window .opening-copy{top:4.375%;z-index:auto}

/* One shared artwork from the closed DOM envelope through the 3D scene. */
.ballot-window{bottom:2px;clip-path:inset(0);border-radius:0 0 6px 6px}
.envelope-finish{position:absolute;inset:0;z-index:7;border-radius:7px;background:url('envelope-art.svg') center/100% 100%;opacity:var(--envelope-closed,0);pointer-events:none}
.scene:not(.webgl-ready) .paper-bottom,.inside-envelopes>i{background:url('envelope-art.svg') center/100% 100%!important}
.scene:not(.webgl-ready) .paper-top,.scene:not(.webgl-ready) .envelope-seam{visibility:hidden}
