:root{--red-900: #581116;--red-800: #74191e;--red-700: #8f1f24;--wine-900: #3b0c12;--wine-700: #6d1720;--gold-500: #e1b457;--gold-300: #f8d68f;--ivory: #fffaf3;--ink: #281613;font-family:"Noto Serif SC",Songti SC,STSong,serif;color:var(--ivory);background:var(--red-900);font-synthesis:none}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.62}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--gold-300),white 20%);outline-offset:3px}.blessing-form input:focus-visible,.blessing-form textarea:focus-visible{outline:none}.couple-title{display:flex;justify-content:center;align-items:baseline;gap:clamp(.35rem,2vw,.75rem);margin:.25rem 0;white-space:nowrap;font-size:clamp(1.55rem,8vw,3.2rem);font-weight:600;letter-spacing:.08em}.double-happiness{color:var(--gold-300);font-size:.78em;text-shadow:0 0 1.2rem rgb(248 214 143 / 45%)}.primary-gold-button{display:block;width:fit-content;min-width:11rem;margin-inline:auto;padding:.85rem 1.5rem;border:2px solid var(--gold-500);border-radius:.5rem;color:var(--gold-300);background:linear-gradient(135deg,#751f28,#96303a 48%,#671821);box-shadow:inset 0 0 0 1px #ffecbc38,0 .5rem 1.6rem #28070a47;font-weight:700;letter-spacing:.08em;transition:transform .18s ease,filter .18s ease}.primary-gold-button:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px)}.join-page{position:relative;display:grid;min-height:100vh;place-items:center;padding:clamp(1.2rem,4vw,3rem) 1rem 3rem;color:var(--ink);background:radial-gradient(circle at 50% 0%,rgb(238 193 100 / 22%),transparent 28rem),radial-gradient(circle at 10% 84%,rgb(125 29 38 / 60%),transparent 28rem),linear-gradient(145deg,#731922,#4a0c13 46%,#250509);isolation:isolate}.join-page:before{position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;opacity:.38;background-image:linear-gradient(115deg,transparent 0 48%,rgb(255 224 152 / 4%) 49% 50%,transparent 51%),radial-gradient(circle at 50% 50%,transparent 0 58%,rgb(12 0 2 / 24%) 100%);background-size:4.5rem 4.5rem,100% 100%;content:""}.site-filing-footer{position:absolute;right:0;bottom:.65rem;left:0;z-index:2;text-align:center;font-size:.72rem;letter-spacing:.04em}.site-filing-footer a{color:#ffefc48f;text-decoration:none;transition:color .16s ease}.site-filing-footer a:hover,.site-filing-footer a:focus-visible{color:#ffefc4eb}.join-card{position:relative;width:min(100%,34rem);padding:clamp(2.35rem,6vw,3.6rem) clamp(1.55rem,6vw,3.5rem) clamp(1.8rem,5vw,3rem);border:1px solid transparent;border-radius:.45rem;background:repeating-linear-gradient(112deg,rgb(116 77 23 / 2.4%) 0 1px,transparent 1px 5px) padding-box,radial-gradient(circle at 18% 10%,rgb(255 255 255 / 88%),transparent 17rem) padding-box,linear-gradient(155deg,#fffdf8,#fbf4e8 58%,#f5e8d2) padding-box,linear-gradient(135deg,#8e641b,#f9dda0 18%,#b78020,#fff0bd 50%,#a76f16 72%,#edc66e 88%,#7c5110) border-box;box-shadow:0 2rem 5rem #16010585,0 0 0 .42rem #41080fe0,0 0 0 .5rem #e5b753a3,inset 0 0 0 1px #ffffffb8,inset 0 0 3rem #a9791f12}.join-card:before,.join-card:after{position:absolute;pointer-events:none;content:""}.join-card:before{top:.72rem;right:.72rem;bottom:.72rem;left:.72rem;border:1px solid rgb(174 120 25 / 48%);box-shadow:inset 0 0 0 1px #fff4ce94}.join-card:after{top:1.02rem;right:1.02rem;bottom:1.02rem;left:1.02rem;border:1px solid rgb(174 120 25 / 18%)}.invitation-gold-frame{position:absolute;z-index:0;top:.34rem;right:.34rem;bottom:.34rem;left:.34rem;border:1px solid rgb(246 211 133 / 74%);pointer-events:none}.invitation-cloud-seal{position:absolute;z-index:0;top:5.8rem;left:50%;width:15rem;height:7rem;translate:-50% 0;opacity:.12;background:radial-gradient(ellipse at 22% 62%,transparent 0 20%,#a9791f 21% 22%,transparent 23%),radial-gradient(ellipse at 50% 38%,transparent 0 26%,#a9791f 27% 28%,transparent 29%),radial-gradient(ellipse at 78% 62%,transparent 0 20%,#a9791f 21% 22%,transparent 23%);filter:blur(.1px);pointer-events:none}.join-card>:not(.join-card-corner,.invitation-gold-frame,.invitation-cloud-seal){position:relative;z-index:1}.join-card-corner{position:absolute;z-index:2;width:2.2rem;height:2.2rem;pointer-events:none}.join-card-corner:before,.join-card-corner:after{position:absolute;background:linear-gradient(90deg,#8c5d12,#f5d484 52%,#f8d68f2e);content:""}.join-card-corner:before{width:100%;height:1px;box-shadow:.42rem .42rem 0 -.05rem #b37c1d94}.join-card-corner:after{width:1px;height:100%;box-shadow:.42rem .42rem 0 -.05rem #b37c1d94}.join-card-corner[data-corner=tl]{top:.72rem;left:.72rem}.join-card-corner[data-corner=tr]{top:.72rem;right:.72rem;rotate:90deg}.join-card-corner[data-corner=br]{right:.72rem;bottom:.72rem;rotate:180deg}.join-card-corner[data-corner=bl]{bottom:.72rem;left:.72rem;rotate:270deg}.eyebrow,.wall-page>header>p,.round-kicker{margin:0;color:var(--gold-300);font-family:Georgia,serif;font-size:clamp(1.1rem,1.9vw,2.1rem);font-weight:600;letter-spacing:.3em;padding-left:.3em;text-align:center;text-shadow:0 0 1.2rem rgb(225 180 87 / 45%)}.join-card .eyebrow{color:#8f631b;font-size:clamp(.61rem,2.2vw,.74rem);letter-spacing:.4em;text-shadow:none}.invitation-kicker{margin:.65rem 0 1.25rem;color:#8a5f3c;font-size:.72rem;letter-spacing:.24em;text-align:center}.join-card .couple-title{align-items:center;gap:clamp(.45rem,2.4vw,.95rem);margin-block:0;color:#6f1119;font-family:STKaiti,KaiTi,"Noto Serif SC",serif;font-size:clamp(1.7rem,8vw,3.1rem);font-weight:700;letter-spacing:.055em;text-shadow:0 1px 0 #fff,0 .12rem .18rem rgb(84 18 21 / 10%)}.join-card .double-happiness{position:relative;display:inline-grid;flex:0 0 auto;width:1.58em;height:1.58em;place-items:center;border:1px solid #a8751c;border-radius:50%;color:transparent;background:linear-gradient(150deg,#fff0b9,#d39b31 26%,#ffe7a1 48%,#9d6814 72%,#edc565) text,radial-gradient(circle at 35% 28%,#9f2430,#75131d 55%,#4c0911) border-box;box-shadow:0 0 0 2px #fbefd4,0 0 0 3px #ae7819a8,inset 0 0 .7rem #1f010570,0 .25rem .7rem #52111638;font-size:.62em;font-weight:900;line-height:1;rotate:0deg;transform:none;text-shadow:none}.join-divider{display:flex;align-items:center;justify-content:center;gap:.6rem;margin:1.15rem auto .2rem;width:min(100%,17rem)}.join-divider:before,.join-divider:after{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgb(201 152 47 / 75%));content:""}.join-divider:after{background:linear-gradient(90deg,rgb(201 152 47 / 75%),transparent)}.join-divider span{width:.42rem;height:.42rem;rotate:45deg;background:linear-gradient(135deg,#f3cd82,#a9791f)}.join-intro{margin:1rem auto 1.7rem;max-width:26rem;color:#694843;font-size:.92rem;line-height:1.75;letter-spacing:.035em;text-align:center}.blessing-form{display:grid;gap:1.1rem}.blessing-form label{display:grid;gap:.48rem;color:#5b302d;font-size:.88rem;font-weight:700;letter-spacing:.06em}.blessing-form input,.blessing-form textarea{width:100%;box-sizing:border-box;border:1px solid rgb(201 152 47 / 45%);border-radius:.3rem;padding:.8rem .9rem;color:var(--ink);background:#ffffffa3;box-shadow:inset 0 1px 2px #6b3f1414;font-family:inherit;font-size:1rem;resize:vertical;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.blessing-form input::placeholder,.blessing-form textarea::placeholder{color:#684d478c}.blessing-form input:hover,.blessing-form textarea:hover{border-color:#c9982fb3}.blessing-form input:focus,.blessing-form textarea:focus{border-color:#c9982f;background:#fff;box-shadow:inset 0 1px 2px #6b3f140f,0 0 0 3px #e1b45742;outline:none}.blessing-form [role=alert],.blessing-form [role=status]{margin:0;border-radius:.5rem;padding:.6rem .8rem;font-size:.9rem;text-align:center}.blessing-form [role=alert]{border:1px solid rgb(143 31 36 / 28%);color:var(--red-800);background:#8f1f2412}.blessing-form [role=status]{border:1px solid rgb(86 114 64 / 30%);color:#4d6639;background:#56724017}.blessing-form .primary-gold-button{width:100%;margin-top:.3rem;padding:.95rem 1.5rem;border-radius:.28rem;font-size:1.02rem;letter-spacing:.18em}.wall-page{position:relative;display:flex;flex-direction:column;min-height:100vh;max-height:100vh;overflow:hidden;color:var(--ivory);background:radial-gradient(circle at 50% 45%,rgb(162 56 62 / 72%),transparent 42%),radial-gradient(circle at 10% 10%,rgb(225 180 87 / 13%),transparent 25%),linear-gradient(150deg,#6e171d,#3c0b10 72%)}.wall-page:before,.wall-page:after{position:absolute;width:24rem;height:24rem;border:1px solid rgb(225 180 87 / 14%);border-radius:50%;content:"";pointer-events:none}.wall-page:before{top:-16rem;left:-8rem;box-shadow:0 0 0 3rem #e1b4570a,0 0 0 7rem #e1b45708}.wall-page:after{right:-9rem;bottom:-17rem;box-shadow:0 0 0 4rem #e1b4570a,0 0 0 8rem #e1b45708}.wall-page>header{position:relative;z-index:3;padding:clamp(1rem,2.4vh,2rem) 2rem .4rem}.wall-page .couple-title{font-size:clamp(2rem,3.2vw,4rem);text-shadow:0 .3rem 1.4rem rgb(35 4 8 / 35%)}.wall-join-qr{position:fixed;z-index:75;top:clamp(1rem,2.2vh,1.75rem);left:clamp(1rem,2vw,1.75rem);display:grid;justify-items:center;gap:.5rem;padding:1rem 1.05rem .7rem;border:2px solid transparent;border-radius:.95rem;background:linear-gradient(158deg,#a8151c,#7d1017 45%,#4d070d) padding-box,linear-gradient(140deg,#f8d68f,#c9962f 28%,#f3cd82,#b5811f,#f8d68f) border-box;box-shadow:0 .8rem 2.2rem #1401037f,0 0 1.6rem #e1b45738,inset 0 0 0 1px #ffebbe2e;pointer-events:none;isolation:isolate;overflow:hidden}.wall-join-qr:after{content:"";position:absolute;z-index:0;top:-40%;right:-60%;bottom:-40%;left:-60%;background:linear-gradient(115deg,transparent 42%,rgb(255 240 205 / 34%) 50%,transparent 58%);animation:wall-qr-shimmer 4.5s linear infinite}@keyframes wall-qr-shimmer{0%{transform:translate(-60%)}55%,to{transform:translate(60%)}}.wall-join-qr-corner{position:absolute;z-index:2;width:.72rem;height:.72rem;border:0 solid rgb(248 214 143 / 85%)}.wall-join-qr-corner-tl{top:.3rem;left:.3rem;border-top-width:1.5px;border-left-width:1.5px;border-top-left-radius:.35rem}.wall-join-qr-corner-tr{top:.3rem;right:.3rem;border-top-width:1.5px;border-right-width:1.5px;border-top-right-radius:.35rem}.wall-join-qr-corner-bl{bottom:.3rem;left:.3rem;border-bottom-width:1.5px;border-left-width:1.5px;border-bottom-left-radius:.35rem}.wall-join-qr-corner-br{bottom:.3rem;right:.3rem;border-bottom-width:1.5px;border-right-width:1.5px;border-bottom-right-radius:.35rem}.wall-join-qr-code{position:relative;z-index:1;padding:.5rem;border-radius:.28rem;background:#fff;box-shadow:0 .2rem .6rem #14010359}.wall-join-qr-code svg{display:block;width:clamp(4.5rem,7vw,6.5rem);height:auto}.wall-join-qr p{position:relative;z-index:1;margin:0;color:var(--gold-300);font-size:clamp(.7rem,.9vw,.85rem);letter-spacing:.14em;text-shadow:0 1px .2rem rgb(20 1 3 / 60%)}.wall-controls{position:fixed;z-index:40;top:0;right:0;display:flex;width:max-content;max-width:calc(100vw - 1rem);min-height:4.5rem;padding:.75rem 1rem;box-sizing:border-box;justify-content:flex-end}.wall-controls-inner{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;width:max-content;height:fit-content;max-width:calc(100vw - 2rem);padding:0;border:0;background:transparent;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-.4rem);transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s}.wall-controls:hover .wall-controls-inner,.wall-controls:focus-within .wall-controls-inner{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}.wall-controls button,.wall-controls a{padding:.45rem .7rem;border:1px solid rgb(225 180 87 / 55%);border-radius:999px;color:var(--gold-300);background:#3b0c12c7;font:inherit;font-size:.75rem;text-decoration:none;-webkit-backdrop-filter:blur(.35rem);backdrop-filter:blur(.35rem);white-space:nowrap}.wall-controls select{box-sizing:border-box;height:2.2rem;padding:0 .6rem;border:1px solid rgb(225 180 87 / 55%);border-radius:.4rem;color:var(--ivory);background:#681820;font:inherit;font-size:.82rem}.wall-controls--demo{width:max-content}.sound-toggle{display:inline-flex;align-items:center;gap:.38rem;white-space:nowrap}.sound-toggle svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.sound-toggle svg path:first-child{fill:currentColor;stroke:none}.blessing-cloud{position:relative;z-index:1;height:calc(100vh - clamp(7rem,15vh,10rem));min-height:34rem;margin-inline:clamp(1rem,3vw,4rem)}.wish{position:absolute;left:var(--wish-x);top:var(--wish-y);display:grid;align-content:center;width:var(--wish-width);min-height:var(--wish-height);box-sizing:border-box;padding:clamp(.42rem,.75vw,.8rem);border:1px solid rgb(248 214 143 / 24%);border-radius:.8rem;color:var(--ivory);background:linear-gradient(145deg,#581116c2,#3b0c1285);box-shadow:0 .7rem 2rem #1e03062e;font-size:calc(clamp(.78rem,1.18vw,1.42rem) * var(--wish-font-scale));transform:rotate(var(--wish-rotation));transition:left .65s cubic-bezier(.2,.78,.22,1),top .65s cubic-bezier(.2,.78,.22,1),width .65s cubic-bezier(.2,.78,.22,1),min-height .65s cubic-bezier(.2,.78,.22,1),opacity .18s ease;animation:wish-enter .9s cubic-bezier(.34,1.3,.64,1) both,wish-float var(--wish-float-dur, 5.6s) var(--wish-float-delay, 0s) ease-in-out infinite alternate,wish-glow 8s var(--wish-glow-delay, 0s) ease-in-out infinite;cursor:zoom-in}.wish-pending-landing{opacity:0;animation:none}.wish-scanning{--wish-scan-scale: 1.08;outline:1px solid rgb(248 214 143 / 88%);outline-offset:2px;background:linear-gradient(145deg,#701b21d1,#3b0c12ad);filter:drop-shadow(0 0 .8rem rgb(248 214 143 / 54%));transition:filter .12s ease-out,background .12s ease-out}.wish-scan-fast,.wish-scan-ramp{--wish-scan-scale: 1.08;filter:drop-shadow(0 0 .9rem rgb(248 214 143 / 58%))}.wish-scan-clunk{--wish-scan-scale: 1.18;filter:drop-shadow(0 0 1.35rem rgb(248 214 143 / 72%))}.wish-scan-locked{transform:rotate(var(--wish-rotation));animation:wish-scan-lock .82s cubic-bezier(.16,1.32,.3,1) both;border-color:var(--gold-300);background:linear-gradient(145deg,#872028f5,#4a0c14f0);filter:drop-shadow(0 0 1.6rem rgb(248 214 143 / 72%))}.wish-scan-fallback{pointer-events:none}@keyframes wish-scan-lock{0%{transform:rotate(var(--wish-rotation)) translateY(0) scale(1.12);box-shadow:0 0 1rem #f8d68f7f}42%{transform:rotate(0) translateY(-1.5rem) scale(1.48);box-shadow:0 0 4.5rem 1rem #fff4d6d6,0 0 10rem 2rem #e1b4577a}to{transform:rotate(0) translateY(-.6rem) scale(1.3);box-shadow:0 0 2.8rem .35rem #f8d68fb8,0 1rem 3rem #1e03067a}}.wish p{margin:0 0 .55rem;overflow-wrap:anywhere;font-weight:600;line-height:1.42;text-align:center;text-shadow:0 .12rem .5rem rgb(30 3 6 / 35%)}.wish footer{color:var(--gold-300);font-size:.67em;line-height:1.35;text-align:center}.floating-error{position:fixed;z-index:60;right:1rem;bottom:1rem;padding:.7rem 1rem;border:1px solid #f0a0a0;border-radius:.5rem;color:#fff;background:#741d25}.connection-banner{position:fixed;z-index:20;top:1rem;right:1rem;padding:.55rem .9rem;border:1px solid var(--gold-500);border-radius:999px;color:var(--gold-300);background:#3b0c12eb}.draw-controls{display:flex;justify-content:center;padding:0}.ceremony-action-dock{position:fixed;z-index:45;bottom:1.25rem;right:0;left:0;display:flex;justify-content:center;padding:0 1rem;pointer-events:none}.ceremony-action-dock>*{pointer-events:auto}.ceremony-action-dock button{box-sizing:border-box;height:3.2rem}.draw-stage{position:relative;z-index:4;display:grid;flex:1;align-content:center;box-sizing:border-box;min-height:0;padding:1rem clamp(1rem,6vw,7rem) 5.5rem;overflow:hidden;text-align:center}.winner-presentation{position:relative;display:grid;width:100%;place-items:center}.winner-presentation-heading{position:absolute;right:0;bottom:calc(100% + clamp(.8rem,2.2vh,1.6rem));left:0}.draw-stage h2,.winners-summary h2{margin:.3rem 0 0;color:var(--gold-300);font-size:clamp(1.8rem,4.2vmin,4rem);font-weight:600}.winner-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(.7rem,1.8vmin,1.8rem);margin-inline:auto;width:min(100%,82rem)}.winner-grid>.winner-card{flex:1 1 15rem;max-width:21rem}.winner-card:only-child{max-width:min(100%,34rem);box-shadow:0 0 4rem #e1b4574d,0 1rem 3rem #1e030659}.winner-card{position:relative;padding:clamp(.9rem,2.4vmin,2rem);border:1px solid rgb(248 214 143 / 55%);border-radius:1rem;background:linear-gradient(155deg,#822027eb,#3b0c12e0);box-shadow:0 1rem 3rem #1e030640;animation:winner-enter .65s cubic-bezier(.2,.8,.2,1) both;cursor:zoom-in}.winner-card h3{margin:clamp(.5rem,1.4vmin,.9rem) 0 0;color:var(--gold-300);font-size:clamp(1rem,2.1vmin,1.8rem);font-weight:500;letter-spacing:.08em}.winner-card h3:before{display:block;width:2.6rem;height:1px;margin:0 auto clamp(.4rem,1.1vmin,.7rem);background:linear-gradient(90deg,transparent,rgb(248 214 143 / 70%),transparent);content:""}.winner-card p,.winner-card blockquote{margin:.5rem 0}.winner-card blockquote{margin:clamp(.5rem,1.4vmin,.8rem) 0 0;color:var(--ivory);font-size:clamp(1.05rem,2.6vmin,2.1rem);line-height:1.45}.winner-order{display:inline-grid;width:2rem;height:2rem;place-items:center;border:1px solid var(--gold-500);border-radius:50%;color:var(--gold-300)}.cancelled-audit{width:min(100%,36rem);margin:1rem auto 0;color:#e8c8b8;font-size:.82rem}.winners-summary,.draw-recovery{position:relative;z-index:4;display:grid;align-content:center;min-height:calc(100vh - 9rem);padding:2rem;text-align:center}.winners-finale{position:relative;z-index:4;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:calc(100vh - 7rem);box-sizing:border-box;padding:clamp(1.15rem,2.2vh,2rem) clamp(1rem,4vw,4.5rem) clamp(4.8rem,7vh,5.6rem);overflow:hidden;text-align:center}.winners-finale:before,.winners-finale:after{position:absolute;width:28rem;height:28rem;border:1px solid rgb(248 214 143 / 12%);border-radius:50%;content:""}.winners-finale:before{top:-18rem;left:-9rem;box-shadow:0 0 0 4rem #f8d68f08}.winners-finale:after{right:-12rem;bottom:-19rem;box-shadow:0 0 0 5rem #f8d68f08}.finale-halo{position:absolute;top:6%;right:14%;bottom:10%;left:14%;background:radial-gradient(circle,rgb(225 180 87 / 15%),transparent 64%);pointer-events:none}.winners-finale header{position:relative;display:grid;gap:clamp(.45rem,.9vh,.8rem);margin-bottom:clamp(.75rem,1.5vh,1.25rem)}.winners-finale header>p{margin:0;color:var(--gold-500);font:600 clamp(.58rem,.8vw,.85rem)/1.2 Georgia,serif;letter-spacing:.46em}.finale-title-row{display:flex;align-items:center;justify-content:center;gap:clamp(.7rem,1.4vw,1.5rem)}.winners-finale h2{display:flex;align-items:center;gap:clamp(.75rem,1.8vw,2.2rem);margin:0 clamp(.3rem,1vw,1rem);color:#fff2c7;font:500 clamp(2.25rem,4.6vmin,4.6rem)/1.08 Georgia,"Noto Serif SC",serif;letter-spacing:.08em;text-shadow:0 0 2rem rgb(248 214 143 / 34%);white-space:nowrap}.winners-finale h2 em{color:var(--gold-300);font-size:.48em;font-style:normal;text-shadow:0 0 .8rem rgb(248 214 143 / 60%)}.finale-title-rule{flex:1 1 6rem;max-width:11rem;min-width:3.5rem;height:1px;background:linear-gradient(90deg,transparent,var(--gold-500))}.finale-title-rule--right{transform:scaleX(-1)}.finale-title-star{color:#fff0bc;font-size:clamp(.75rem,1.15vw,1.15rem);text-shadow:0 0 .9rem rgb(255 226 153 / 70%)}.finale-title-jewel{width:.5rem;height:.5rem;margin:.15rem auto 0;border:1px solid var(--gold-500);transform:rotate(45deg);box-shadow:0 0 .85rem #e1b4577a}.finale-rounds{position:relative;display:grid;grid-template-rows:repeat(3,auto);align-content:center;gap:clamp(.62rem,1.25vh,1rem);width:min(100%,80rem);margin:0 auto}.finale-round{display:grid;grid-template-columns:clamp(7.5rem,10vw,10rem) 1fr;align-items:center;gap:1rem}.finale-round h3{position:relative;display:flex;align-self:center;align-items:center;flex-direction:column;justify-content:center;gap:.36rem;margin:0;color:var(--gold-300);font-size:clamp(1rem,1.35vw,1.35rem);font-style:normal;font-weight:500;line-height:1.25;letter-spacing:.18em;text-align:center;text-shadow:0 0 1.1rem rgb(225 180 87 / 30%)}.finale-round h3 span{color:#fff4d6bd;font-size:.62em;letter-spacing:.16em}.finale-round h3 b{font-family:STKaiti,KaiTi,"Noto Serif SC",serif;font-weight:500;white-space:nowrap}.finale-round-rule{position:relative;display:block;width:5.2rem;height:.55rem;margin-bottom:0;background:linear-gradient(90deg,transparent,rgb(225 180 87 / 45%) 28%,var(--gold-500)) no-repeat left center / calc(100% - .34rem) 1px}.finale-round-rule:before{position:absolute;top:50%;left:1.35rem;width:1rem;height:3px;border-top:1px solid rgb(248 214 143 / 45%);border-bottom:1px solid rgb(248 214 143 / 24%);transform:translateY(-50%);content:""}.finale-round-rule:after{position:absolute;top:50%;right:0;width:.48rem;height:.48rem;border:1px solid var(--gold-500);box-sizing:border-box;transform:translateY(-50%) rotate(45deg);transform-origin:center;content:""}.finale-winner-grid{display:grid;grid-template-columns:repeat(var(--finale-count, 5),minmax(0,1fr));align-items:stretch;gap:clamp(.65rem,1vw,1.1rem)}.finale-round--1 .finale-winner-grid{--finale-count: 5}.finale-round--2 .finale-winner-grid{--finale-count: 3;max-width:70rem}.finale-round--3 .finale-winner-grid{--finale-count: 1;max-width:28rem}.finale-winner-grid article{position:relative;display:grid;min-height:clamp(4.8rem,9.2vh,6.5rem);padding:clamp(.82rem,1.35vmin,1.15rem) clamp(1rem,1.5vw,1.5rem);place-content:center;border:1px solid rgb(248 214 143 / 55%);border-radius:.55rem;background:linear-gradient(150deg,#821e28d6,#38070dc7);box-shadow:inset 0 0 2rem #ffeebe0a,0 .8rem 2rem #14010433;animation:winner-enter .65s calc(var(--winner-index) * 90ms) cubic-bezier(.2,.9,.2,1) both;cursor:zoom-in}.finale-winner-grid article:after{position:absolute;top:.28rem;right:.28rem;bottom:.28rem;left:.28rem;border:1px solid rgb(248 214 143 / 18%);border-radius:.38rem;pointer-events:none;content:""}.finale-round--3 article{border-color:#f8d68fb8;box-shadow:0 0 3rem #e1b45742}.finale-number{position:absolute;z-index:2;top:.62rem;left:.78rem;display:flex;align-items:center;gap:.42rem;color:#f2cd7a;background:transparent;font:600 italic clamp(.85rem,1.15vw,1.15rem)/1 Georgia,serif;letter-spacing:.04em;text-shadow:0 0 .8rem rgb(239 193 95 / 38%)}.finale-number:after{width:clamp(1.1rem,2vw,2.4rem);height:1px;background:linear-gradient(90deg,rgb(242 205 122 / 80%),transparent);content:""}.finale-winner-grid blockquote{margin:0 0 .35rem;color:var(--ivory);font:600 clamp(.74rem,1.1vw,1.08rem)/1.42 "Noto Serif SC",serif}.finale-winner-grid strong{color:var(--gold-300);font-size:clamp(.7rem,.85vw,.92rem);font-weight:500;letter-spacing:.12em}.winners-finale .ceremony-action-dock button{width:fit-content;padding:.62rem 1.55rem;border:1px solid rgb(225 180 87 / 58%);border-radius:999px;color:var(--gold-300);background:#64121be5;box-shadow:0 .7rem 2rem #14010440;font:inherit}.winners-summary>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;width:min(100%,58rem);margin:0 auto 1.5rem}.winners-summary article{display:flex;justify-content:space-between;gap:.8rem;padding:.9rem 1rem;border-bottom:1px solid rgb(225 180 87 / 42%);color:var(--gold-300)}.winners-summary button,.draw-recovery button,.wish-dialog button,.confirm-dialog button:not(.primary-gold-button){width:fit-content;margin-inline:auto;padding:.65rem 1rem;border:1px solid rgb(225 180 87 / 60%);border-radius:.45rem;color:var(--gold-300);background:#76212a}.modal-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1rem;background:#180205b8;-webkit-backdrop-filter:blur(.35rem);backdrop-filter:blur(.35rem)}.blessing-detail-backdrop{z-index:90;background:radial-gradient(circle at 50% 44%,rgb(132 37 43 / 26%),transparent 42%),#180205c7}.blessing-detail-dialog{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(88vw,46rem);max-height:min(76vh,42rem);box-sizing:border-box;padding:clamp(2rem,4.5vw,3.6rem) clamp(1.5rem,5vw,4rem) clamp(1.5rem,3.5vw,2.5rem);overflow:hidden;border:1px solid rgb(248 214 143 / 72%);border-radius:1rem;color:var(--ivory);background:linear-gradient(135deg,transparent 0 1rem,rgb(248 214 143 / 22%) 1rem 1.06rem,transparent 1.06rem) top left / 3rem 3rem no-repeat,linear-gradient(225deg,transparent 0 1rem,rgb(248 214 143 / 22%) 1rem 1.06rem,transparent 1.06rem) top right / 3rem 3rem no-repeat,linear-gradient(155deg,#8a222d,#4b0912 58%,#280208);box-shadow:inset 0 0 4rem #ffe8b00d,0 2rem 7rem #1200039e;text-align:center}.blessing-detail-ornament{display:flex;align-items:center;gap:.9rem;margin:0 auto clamp(1rem,2.2vh,1.7rem);color:var(--gold-300)}.blessing-detail-ornament:before,.blessing-detail-ornament:after{width:clamp(2.8rem,8vw,6rem);height:1px;background:linear-gradient(90deg,transparent,rgb(248 214 143 / 70%));content:""}.blessing-detail-ornament:after{transform:scaleX(-1)}.blessing-detail-ornament span{font:500 clamp(1rem,2vw,1.4rem)/1 STKaiti,KaiTi,serif}.blessing-detail-message{margin:0;padding:.2rem .7rem 1rem;overflow-wrap:anywhere;color:#fff7e6;font:600 clamp(1.4rem,3.2vw,2.45rem)/1.65 "Noto Serif SC",STSong,serif;letter-spacing:.08em;text-shadow:0 .15rem .8rem rgb(31 1 5 / 42%)}.blessing-detail-message--scrollable{min-height:0;overflow-y:auto;scrollbar-color:rgb(225 180 87 / 65%) transparent;scrollbar-width:thin}.blessing-detail-dialog footer{margin-top:clamp(.8rem,2vh,1.4rem);color:var(--gold-300);font-size:clamp(1rem,1.8vw,1.3rem);letter-spacing:.18em}.blessing-detail-dialog footer:before{display:block;width:3.4rem;height:1px;margin:0 auto .75rem;background:linear-gradient(90deg,transparent,var(--gold-500),transparent);content:""}.confirm-dialog,.wish-dialog{width:min(100%,30rem);padding:1.5rem;border:1px solid var(--gold-500);border-radius:.9rem;color:var(--ivory);background:linear-gradient(150deg,#741d25,var(--wine-900));box-shadow:0 1.5rem 5rem #1401037a;text-align:center}.confirm-dialog{position:relative}.dialog-close{position:absolute;top:.75rem;right:.75rem;display:grid;width:2rem!important;height:2rem;margin:0!important;padding:0!important;place-items:center;border:1px solid var(--gold-500)!important;border-radius:50%!important;color:var(--gold-300)!important;background:transparent!important;font-size:1.25rem}.admin-login-dialog{display:grid;gap:1rem}.admin-login-dialog label{display:grid;gap:.4rem;text-align:left}.admin-login-dialog input{padding:.7rem .8rem;border:1px solid rgb(225 180 87 / 45%);border-radius:.45rem;color:var(--ivory);background:#1e030659}.dialog-actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.25rem}.dialog-actions .primary-gold-button{margin:0}.danger-button{padding:.75rem 1rem;border:1px solid #f0a0a0;border-radius:.45rem;color:#fff;background:#8c2228}@keyframes wish-enter{0%{opacity:0;scale:.75;box-shadow:0 0 #f8d68f00}40%{opacity:1;scale:1.08;box-shadow:0 0 2.5rem 1rem #f8d68f8c}70%{scale:.97;box-shadow:0 0 1.5rem .5rem #f8d68f59}85%{scale:1.02}to{opacity:1;scale:1;box-shadow:0 .7rem 2rem #1e03062e}}@keyframes wish-float{0%{translate:0 -7px;transform:rotate(calc(var(--wish-rotation) - .6deg)) scale(var(--wish-scan-scale, 1))}30%{translate:0 -2px;transform:rotate(calc(var(--wish-rotation) - .1deg)) scale(var(--wish-scan-scale, 1))}60%{translate:0 3px;transform:rotate(calc(var(--wish-rotation) + .3deg)) scale(var(--wish-scan-scale, 1))}to{translate:0 7px;transform:rotate(calc(var(--wish-rotation) + .6deg)) scale(var(--wish-scan-scale, 1))}}@keyframes wish-glow{0%,to{border-color:#f8d68f3d}50%{border-color:#f8d68f9e;box-shadow:0 .7rem 2rem #1e03062e,0 0 1.2rem #f8d68f47}}@keyframes winner-enter{0%{opacity:0;transform:translateY(1rem) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.admin-page{min-height:100vh;padding:clamp(1rem,3vw,2.5rem);color:var(--ivory);background:radial-gradient(circle at 12% 0%,rgb(144 38 48 / 26%),transparent 28rem),linear-gradient(145deg,#410a10,#1e0408 78%);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.admin-header,.admin-header nav{display:flex;align-items:center;justify-content:space-between;gap:1rem}.admin-header{max-width:92rem;margin:0 auto 1.35rem;padding-bottom:1.2rem;border-bottom:1px solid rgb(225 180 87 / 18%)}.admin-header p{margin:0 0 .35rem;color:var(--gold-300);font-size:.72rem;letter-spacing:.2em}.admin-header h1{margin:0;font-size:clamp(1.75rem,3vw,2.65rem);letter-spacing:-.02em}.admin-header span{display:block;margin-top:.45rem;color:#c9aaa0;font-size:.84rem}.admin-header nav{justify-content:flex-end;flex-wrap:wrap}.admin-header a,.admin-header button{padding:.65rem .85rem;border:1px solid rgb(225 180 87 / 45%);border-radius:.42rem;color:var(--gold-300);background:#5811165c;font:inherit;font-size:.86rem;text-decoration:none;transition:border-color .16s ease,background .16s ease,color .16s ease}.admin-header a:hover,.admin-header button:hover{border-color:var(--gold-300);background:#74191eb3;color:#fff2ce}.admin-header .admin-primary-link{border-color:var(--gold-500);color:#3c1408;background:linear-gradient(135deg,#f6d98d,#c88b24 72%,#f0c86d);font-weight:700}.admin-status-strip{display:grid;grid-template-columns:minmax(13rem,.8fr) 2.2fr;align-items:center;gap:1rem;max-width:92rem;margin:0 auto 1rem;padding:.9rem 1rem;border:1px solid rgb(225 180 87 / 20%);border-radius:.7rem;background:#1f040875;box-shadow:0 .75rem 2.5rem #0c000229}.admin-status-title{display:flex;align-items:center;gap:.7rem}.admin-status-title h2{margin:0;font-size:1rem}.admin-status-title p{margin:.24rem 0 0;color:#c9aaa0;font-size:.74rem}.status-dot{width:.62rem;height:.62rem;border-radius:50%;background:#d36969;box-shadow:0 0 .7rem #d369698c}.status-dot--ok{background:#70c889;box-shadow:0 0 .7rem #70c8898c}.admin-panel{max-width:92rem;margin-bottom:1rem;margin-inline:auto;padding:1rem;border:1px solid rgb(225 180 87 / 18%);border-radius:.72rem;background:#3e0a1075;box-shadow:0 1rem 3rem #0c000224}.admin-panel h2{margin-top:0;color:#f3d58f;font-size:1.05rem}.admin-panel-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.admin-panel-heading h2{margin-bottom:.2rem}.admin-panel-heading span{color:#e6c8b2;font-size:.82rem}.admin-search{display:flex;align-items:end;gap:.45rem}.admin-search label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.admin-search input{min-width:min(22rem,42vw);padding:.65rem .75rem;border:1px solid rgb(225 180 87 / 35%);border-radius:.38rem;color:var(--ivory);background:#1e03066b;font:inherit}.admin-search button{padding:.65rem .75rem;border:1px solid rgb(225 180 87 / 35%);border-radius:.38rem;color:var(--gold-300);background:transparent;font:inherit}.admin-empty{color:#e6c8b2}.admin-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem}.admin-metrics article{display:grid;gap:.15rem;padding:.55rem .7rem;border-left:1px solid rgb(225 180 87 / 22%);background:transparent}.admin-metrics span{color:#e6c8b2;font-size:.8rem}.admin-metrics strong{color:var(--gold-300);font-size:1.08rem;line-height:1.2}.admin-version-button{width:fit-content;padding:0;border:0;border-bottom:1px solid rgb(225 180 87 / 45%);color:var(--gold-300);background:transparent;font:600 1.08rem/1.2 inherit;cursor:pointer}.admin-version-button:hover{color:#fff1c0;border-color:#fff1c0}.release-history-backdrop{z-index:80}.release-history-dialog{position:relative;width:min(92vw,42rem);max-height:min(82vh,46rem);overflow:auto;padding:clamp(1.4rem,4vw,2.4rem);border:1px solid rgb(225 180 87 / 55%);border-radius:.9rem;background:linear-gradient(150deg,#761824,#36050c);box-shadow:0 2rem 6rem #100003a6}.release-history-dialog>header{margin-bottom:1.2rem;text-align:left}.release-history-dialog>header p{margin:0 0 .3rem;color:var(--gold-500);font:600 .68rem/1.2 Georgia,serif;letter-spacing:.4em}.release-history-dialog>header h2{margin:0;color:#fff1c0;font:500 clamp(1.65rem,4vw,2.35rem)/1.2 "Noto Serif SC",serif}.release-history-list{display:grid;gap:.75rem}.release-history-list article{padding:1rem 1.1rem;border:1px solid rgb(225 180 87 / 22%);border-radius:.65rem;background:#2a030959}.release-history-list article>div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.release-history-list strong{color:var(--gold-300);font:600 1.1rem Georgia,serif}.release-history-list time{color:#d9c2a0;font-size:.78rem}.release-history-list ul{display:grid;gap:.4rem;margin:.75rem 0 0;padding-left:1.15rem;color:#f5e8d4;font-size:.9rem;line-height:1.55}.admin-blessing-table-wrap{overflow-x:auto;border:1px solid rgb(225 180 87 / 14%);border-radius:.5rem}.admin-blessing-table{width:100%;border-collapse:collapse;table-layout:fixed}.admin-blessing-table th{padding:.65rem .75rem;color:#d8b986;background:#1e030661;font-size:.76rem;font-weight:500;letter-spacing:.08em;text-align:left}.admin-blessing-table th:first-child{width:2.8rem}.admin-blessing-table th:nth-child(3){width:10rem}.admin-blessing-table th:nth-child(4){width:13rem}.admin-blessing-table td{padding:.78rem .75rem;border-top:1px solid rgb(225 180 87 / 11%);color:#f3e5d2;vertical-align:middle}.admin-blessing-table tbody tr{transition:background .15s ease}.admin-blessing-table tbody tr:hover{background:#dc963c0f}.admin-blessing--selected{background:#dc963c1c!important}.admin-blessing-message{color:var(--ivory)!important;font-family:"Noto Serif SC",serif;font-weight:600}.admin-blessing-table strong{color:var(--gold-300);font-weight:500}.admin-blessing-table time{color:#c6aa98;font-size:.78rem;white-space:nowrap}.admin-blessing-check{display:flex;align-items:center;padding-top:.1rem;cursor:pointer}.admin-blessing-check input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--gold-300);cursor:pointer}.admin-select-all{display:flex;align-items:center;gap:.5rem;cursor:pointer}.admin-select-all input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--gold-300);cursor:pointer}.admin-delete-selected-btn{padding:.38rem .8rem;border:1px solid #ef8a7a;background:transparent;color:#efb7ae;border-radius:.35rem;cursor:pointer;font-size:.82rem;white-space:nowrap}.admin-delete-selected-btn:disabled{opacity:.35;cursor:not-allowed}.admin-delete-selected-btn:not(:disabled):hover{background:#b43c3240}.admin-error{color:#ffd1d1}@media(max-width:760px){.admin-header,.admin-header nav{align-items:flex-start;flex-direction:column}.admin-header nav{width:100%}.admin-header nav>*{flex:1;text-align:center}.admin-status-strip{grid-template-columns:1fr}.admin-metrics{grid-template-columns:repeat(2,1fr)}.admin-panel-heading,.admin-search{align-items:stretch;flex-direction:column}.admin-search input{min-width:0;width:100%}}.demo-tabs{display:flex;gap:.3rem}.demo-tab{flex:1;padding:.35rem .5rem;border:1px solid rgb(225 180 87 / 35%);border-radius:.35rem;color:#e1b45799;background:transparent;font:inherit;font-size:.75rem;cursor:pointer;transition:background .15s,color .15s}.demo-tab--active,.demo-tab:hover{background:#681820;color:var(--gold-300);border-color:#e1b45799}.demo-tab-panel{display:flex;flex-direction:column;gap:.5rem}.demo-draw-info{color:#e1b457b3;font-size:.78rem;line-height:1.6;margin:0}.demo-draw-info small{opacity:.6}.demo-draw-reset-btn{padding:.38rem .7rem;border:1px solid rgb(225 180 87 / 45%);background:transparent;color:var(--gold-300);border-radius:.3rem;cursor:pointer;font-size:.8rem}.demo-draw-reset-btn:hover{background:#681820}.demo-mode-btn{padding:.38rem .7rem;border:1px solid rgb(225 180 87 / 35%);background:transparent;color:#e1b457b3;border-radius:.3rem;cursor:pointer;font-size:.78rem}.demo-mode-btn:hover{border-color:#e1b45799;color:var(--gold-300)}.demo-draw-topbar{position:fixed;top:.8rem;left:50%;transform:translate(-50%);z-index:120;display:flex;align-items:center;gap:1rem;background:#1e0a0fe0;border:1px solid rgb(225 180 87 / 35%);border-radius:.5rem;padding:.4rem .8rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.demo-draw-back-btn{padding:.3rem .7rem;border:1px solid rgb(225 180 87 / 45%);background:transparent;color:var(--gold-300);border-radius:.3rem;cursor:pointer;font-size:.8rem;white-space:nowrap}.demo-draw-back-btn:hover{background:#681820}.demo-draw-hint{font-size:.72rem;color:#e1b4578c;white-space:nowrap}.demo-tab-panel--draw{max-height:70vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#681820 transparent}.draw-simulator{display:flex;flex-direction:column;gap:.8rem}.draw-sim-header{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.draw-sim-title{margin:0;color:var(--gold-300);font-size:.95rem;font-weight:600}.draw-sim-desc{margin:0;color:#e1b4578c;font-size:.68rem;flex:1}.draw-sim-reset-btn{padding:.25rem .5rem;border:1px solid rgb(225 180 87 / 30%);border-radius:.3rem;background:transparent;color:#e1b4577f;font:inherit;font-size:.68rem;cursor:pointer;margin-left:auto}.draw-sim-reset-btn:hover{color:var(--gold-300);border-color:#e1b45799}.draw-sim-rounds{display:flex;flex-direction:column;gap:.6rem}.draw-sim-round{padding:.6rem;border:1px solid rgb(225 180 87 / 20%);border-radius:.5rem;background:#ffffff08}.draw-sim-round--completed{border-color:#50a0504d;background:#50a0500d}.draw-sim-round-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.45rem}.draw-sim-round-label{color:var(--gold-300);font-size:.78rem;font-weight:600}.draw-sim-round-status{font-size:.65rem;padding:.1rem .35rem;border-radius:2rem}.draw-sim-round-status--idle{color:#b4b4b499}.draw-sim-round-status--rolling{color:#fc4;animation:pulse-text .5s ease infinite alternate}.draw-sim-round-status--adjusting{color:#8cf}.draw-sim-round-status--completed{color:#80d080}@keyframes pulse-text{0%{opacity:.6}to{opacity:1}}.draw-sim-drum{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem}.draw-sim-drum-label{margin:0;color:#fc4;font-size:.72rem;animation:pulse-text .5s ease infinite alternate}.draw-sim-drum-names{display:flex;gap:.5rem}.draw-sim-drum-name{padding:.2rem .5rem;border:1px solid #ffcc4466;border-radius:.3rem;color:#fd8;font-size:.82rem;font-weight:600;min-width:3rem;text-align:center;animation:drum-flash .08s ease infinite alternate}@keyframes drum-flash{0%{opacity:.7}to{opacity:1}}.draw-sim-winners{display:flex;flex-direction:column;gap:.3rem}.draw-sim-winner{display:flex;align-items:center;gap:.4rem;padding:.3rem .4rem;border:1px solid rgb(225 180 87 / 25%);border-radius:.35rem;background:#ffc8640f}.draw-sim-winner--cancelled{opacity:.45;text-decoration:line-through;border-color:#c8505040;background:#c850500d}.draw-sim-winner-name{color:var(--ivory);font-size:.82rem;font-weight:600;flex:1}.draw-sim-winner-table{color:#e1b4578c;font-size:.68rem}.draw-sim-winner-badge{font-size:.65rem;color:#c85050cc}.draw-sim-cancel-btn{padding:.15rem .4rem;border:1px solid rgb(200 80 80 / 40%);border-radius:.25rem;background:transparent;color:#c85050b3;font:inherit;font-size:.65rem;cursor:pointer}.draw-sim-cancel-btn:hover{background:#c850501f;color:#ff8080}.draw-sim-actions{display:flex;gap:.4rem;margin-top:.4rem}.draw-sim-primary-btn{flex:1;padding:.4rem .6rem;border:1px solid rgb(225 180 87 / 55%);border-radius:.35rem;background:#7a1c22;color:var(--gold-300);font:inherit;font-size:.78rem;cursor:pointer;transition:background .15s}.draw-sim-primary-btn:hover:not(:disabled){background:#8e2028}.draw-sim-primary-btn:disabled{opacity:.45;cursor:not-allowed}.draw-sim-secondary-btn{padding:.4rem .6rem;border:1px solid rgb(120 180 255 / 40%);border-radius:.35rem;background:transparent;color:#8cf;font:inherit;font-size:.78rem;cursor:pointer}.draw-sim-secondary-btn:hover:not(:disabled){background:#78b4ff14}.draw-sim-secondary-btn:disabled{opacity:.45;cursor:not-allowed}.draw-sim-round-done{margin:.3rem 0 0;color:#80d080;font-size:.72rem}.draw-sim-summary{padding:.8rem;border:1px solid rgb(80 180 80 / 35%);border-radius:.5rem;background:#50b4500f}.draw-sim-summary h3{margin:0 0 .4rem;color:var(--gold-300);font-size:.9rem}.draw-sim-summary p{margin:0 0 .4rem;color:var(--ivory);font-size:.78rem}.draw-sim-summary-list{margin:0 0 .6rem;padding-left:1rem;color:var(--ivory);font-size:.75rem;line-height:1.6}.wall-ambient{position:fixed;z-index:0;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.ambient-fireworks,.ambient-petals,.ambient-reactions{position:absolute;top:0;right:0;bottom:0;left:0}.ambient-burst{position:absolute;width:1px;height:1px;opacity:0;animation:ambient-burst 9s infinite}.ambient-burst.burst-1{top:27%;left:15%;animation-delay:.7s}.ambient-burst.burst-2{top:21%;right:13%;animation-delay:4s}.ambient-burst.burst-3{top:65%;left:72%;animation-delay:6.6s}.ambient-burst i{--angle: calc(var(--ray) * 25.714deg);position:absolute;width:2.5rem;height:1px;transform:rotate(var(--angle));transform-origin:left;background:linear-gradient(90deg,rgb(246 199 97 / 60%),transparent);box-shadow:0 0 .45rem #f7c14b47}.ambient-petals i{position:absolute;top:-8%;left:var(--petal-x);width:.42rem;height:.75rem;border-radius:80% 0;background:#e2797e59;animation:ambient-petal var(--petal-duration) var(--petal-delay) linear infinite}.reaction{position:absolute;bottom:-4rem;display:grid;width:2.4rem;height:2.4rem;place-items:center;border:1px solid rgb(238 196 104 / 22%);border-radius:50%;background:#69161f57;box-shadow:0 .6rem 1.5rem #1a00051f;opacity:0;animation:ambient-reaction 13s ease-in-out infinite}.reaction svg{width:1.35rem;fill:none;stroke:#f4ce7eb8;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.reaction-applause{left:7%;animation-delay:2s}.reaction-horn{right:8%;animation-delay:7s}.reaction-flower{left:83%;animation-delay:11s}@keyframes ambient-burst{0%,8%,to{opacity:0;scale:.15}11%{opacity:.55;scale:.45}19%{opacity:.2;scale:1.3}25%{opacity:0;scale:1.55}}@keyframes ambient-petal{0%{translate:-2vw -8vh;rotate:0deg;opacity:0}8%{opacity:.35}55%{translate:7vw 55vh;rotate:260deg}to{translate:-4vw 112vh;rotate:620deg;opacity:0}}@keyframes ambient-reaction{0%,68%,to{translate:0 0;opacity:0;scale:.7}73%{opacity:.65;scale:1}92%{translate:1.5rem -48vh;opacity:.25;scale:.9}96%{translate:-.4rem -62vh;opacity:0}}.arrival-effect{position:fixed;z-index:70;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;pointer-events:none;perspective:1600px;isolation:isolate;background:#3a080e7a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .34s ease-out}.arrival-effect--exiting{opacity:0}.effect-atmosphere{position:absolute;z-index:10;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 48%,rgb(255 226 157 / 15%) 0 12%,transparent 38%),radial-gradient(ellipse at 50% 55%,transparent 0 30%,rgb(34 2 8 / 42%) 82%)}.particle-stage{position:absolute;z-index:24;top:0;right:0;bottom:0;left:0;overflow:hidden}.particle-stage canvas{display:block;width:100%;height:100%}.cinematic-fireworks{position:absolute;z-index:25;top:0;right:0;bottom:0;left:0;overflow:hidden;mix-blend-mode:screen}.cinematic-firework-burst{position:absolute;top:var(--burst-y);left:var(--burst-x);width:1px;height:1px;scale:var(--burst-scale)}.cinematic-firework-ray{position:absolute;width:1px;height:1px;transform:rotate(var(--ray-angle))}.cinematic-firework-ray:before,.cinematic-firework-ray:after{position:absolute;left:0;width:clamp(2.2rem,5vw,5rem);height:2px;border-radius:999px;content:"";opacity:0;transform-origin:left;background:linear-gradient(90deg,#fff8d8 0 4%,#ffd870 18%,rgb(255 113 89 / 76%) 54%,transparent 100%);filter:drop-shadow(0 0 .32rem #ffd66b);animation:cinematic-firework 1.75s var(--burst-delay) cubic-bezier(.08,.62,.18,1) both}.cinematic-firework-ray:after{width:clamp(1.4rem,3.4vw,3.2rem);height:1px;background:linear-gradient(90deg,#fff 0 6%,#f8b4a9 35%,transparent 100%);animation-delay:calc(var(--burst-delay) + .12s)}@keyframes cinematic-firework{0%{opacity:0;translate:0 0;scale:.08 1}8%{opacity:1}58%{opacity:.96;translate:clamp(4rem,12vw,11rem) 0;scale:1 1}to{opacity:0;translate:clamp(8rem,22vw,19rem) clamp(.2rem,1.4vh,1rem);scale:.26 .55}}.effect-card{position:relative;z-index:30;width:min(39rem,78vw);min-height:12rem;padding:2.8rem 3.2rem 2.5rem;border:1px solid rgb(244 205 113 / 74%);border-radius:.45rem;color:var(--ivory);background:linear-gradient(135deg,transparent 0 17px,rgb(255 238 190 / 13%) 18px 19px,transparent 20px),radial-gradient(circle at 42% 0%,rgb(230 121 99 / 24%),transparent 45%),linear-gradient(145deg,#841f2af7,#430811fa);box-shadow:0 2.4rem 8rem #00000070,0 0 3rem #e1b45733,inset 0 0 2.5rem #ffe9ad12;text-align:center;transform-style:preserve-3d;will-change:transform,opacity,filter}.effect-card:before,.effect-card:after{position:absolute;top:.55rem;right:.55rem;bottom:.55rem;left:.55rem;border:1px solid rgb(237 192 96 / 22%);content:"";pointer-events:none}.effect-card:after{top:.82rem;right:.82rem;bottom:.82rem;left:.82rem;border-color:#fff2c914}.effect-card-flourish{display:block;margin:-.9rem auto .7rem;color:var(--gold-300);font-size:1.15rem;opacity:.72}.effect-card p{position:relative;z-index:1;margin:0 0 1.1rem;font-family:STKaiti,KaiTi,"Noto Serif SC",serif;font-size:clamp(1.8rem,4vw,3.7rem);font-weight:650;line-height:1.35;letter-spacing:.07em;text-shadow:0 .2rem 1.1rem rgb(34 0 6 / 72%)}.effect-card footer{position:relative;z-index:1;color:var(--gold-300);letter-spacing:.18em}.happiness-field,.fly-through-decor{position:absolute;z-index:27;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.happiness-field-glyph{position:absolute;top:var(--xi-y);left:var(--xi-x);color:#f4c969c7;font-family:STKaiti,KaiTi,serif;font-size:var(--xi-size);font-style:normal;opacity:0;text-shadow:0 0 1rem rgb(255 194 67 / 42%);transform:translate(-50%,-50%) rotate(var(--xi-rotate)) scale(.2);animation:happiness-field-bloom 3.7s var(--xi-delay) cubic-bezier(.16,.84,.22,1) both}@keyframes happiness-field-bloom{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--xi-rotate)) scale(.2);filter:blur(.4rem)}18%{opacity:.78;filter:blur(0)}34%,76%{opacity:.48;transform:translate(-50%,-50%) rotate(var(--xi-rotate)) scale(1);filter:blur(0)}to{opacity:0;transform:translate(-58%,-56%) rotate(calc(var(--xi-rotate) + 8deg)) scale(.72)}}.happiness-gold-dot{position:absolute;left:var(--dot-x);top:var(--dot-y);width:var(--dot-size);height:var(--dot-size);font-style:normal;background:#ffe566;border-radius:50%;box-shadow:0 0 calc(var(--dot-size) * 4) calc(var(--dot-size) * 1.5) #ffdc5099,0 0 calc(var(--dot-size) * 1.5) calc(var(--dot-size) * .5) #fff8d0;opacity:0;transform:translate(-50%,-50%) scale(0) rotate(0);animation:happiness-dot-pop var(--dot-dur, .9s) var(--dot-delay, 0s) ease-in-out both}.happiness-gold-dot:before,.happiness-gold-dot:after{content:"";position:absolute;left:50%;top:50%;background:linear-gradient(to bottom,transparent,#ffe566 40%,#ffe566 60%,transparent);transform:translate(-50%,-50%);border-radius:999px}.happiness-gold-dot:before{width:1px;height:calc(var(--dot-size) * 10)}.happiness-gold-dot:after{width:calc(var(--dot-size) * 10);height:1px}@keyframes happiness-dot-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(0) rotate(0)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.6) rotate(15deg)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1) rotate(45deg)}80%{opacity:.6}to{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(90deg)}}.fly-through-decor-particle{position:absolute;left:0;top:0;opacity:0;font-style:normal;transform-origin:center;will-change:transform,opacity}.fly-through-decor-petal{color:#ffb7c5;font-size:1.4rem;text-shadow:0 0 .8rem #ff91a3}.fly-through-decor-heart{color:#ff6680;font-size:1.6rem;text-shadow:0 0 1rem #ff5577}.fly-through-decor-xi{color:#f4c030;font-family:STKaiti,KaiTi,serif;font-size:1.6rem;text-shadow:0 0 1rem rgb(240 182 58 / 90%)}.fly-through-decor-ring{width:3.5rem;height:3.5rem;border:2px solid rgb(248 214 143 / 90%);border-radius:50%;box-shadow:0 0 1.5rem #e1b457b3,inset 0 0 .8rem #ffe8b466}.fly-through-hero{position:absolute;left:var(--hero-x);top:var(--hero-y);opacity:0;animation:fly-hero-trail 3.2s var(--hero-delay, 0s) cubic-bezier(.16,1,.3,1) both}@keyframes fly-hero-trail{0%{opacity:0;transform:translate(320px,-20px) scale(.3)}22%{opacity:1}to{opacity:0;transform:translate(-120px,var(--hero-fall, 60px)) rotate(300deg) scale(1.25)}}.fly-through-energy-ring{position:absolute;left:50%;top:50%;width:8rem;height:8rem;border:2px solid rgb(248 214 143 / 80%);border-radius:50%;box-shadow:0 0 2rem #e1b45799,inset 0 0 1rem #ffe8b44d;transform:translate(-50%,-50%) scale(.25);opacity:.85;animation:fly-through-ring-expand 1.1s cubic-bezier(.08,.62,.18,1) both;pointer-events:none}@keyframes fly-through-ring-expand{0%{opacity:.85;transform:translate(-50%,-50%) scale(.25)}to{opacity:0;transform:translate(-50%,-50%) scale(6)}}.effect-seal-mark{position:absolute;z-index:45;display:grid;width:8rem;height:8rem;margin:8rem 0 0 31rem;place-items:center;border:.45rem double #e5b34b;color:#efc362;font-family:STKaiti,KaiTi,serif;font-size:4.7rem;line-height:1;text-shadow:0 0 .8rem rgb(233 163 51 / 58%);box-shadow:inset 0 0 0 .16rem #ffd57747,0 0 1.5rem #dc972552}.seal-decor{position:absolute;z-index:44;top:0;right:0;bottom:0;left:0;pointer-events:none}.seal-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;mix-blend-mode:normal}.seal-ring{position:absolute;left:50%;top:50%;width:4rem;height:4rem;border-radius:50%;border:1px solid rgba(220,170,80,.6);box-shadow:0 0 1rem .3rem #dcaa3c2e;transform:translate(-50%,-50%) scale(.1);opacity:0;animation:seal-ring-out 1.6s .25s cubic-bezier(.08,.72,.22,1) both}@keyframes seal-ring-out{0%{opacity:.8;transform:translate(-50%,-50%) scale(.1)}15%{opacity:.6}to{opacity:0;transform:translate(-50%,-50%) scale(4.5)}}.cinematic-firework-burst--mini .cinematic-firework-ray:before{width:clamp(1.2rem,3vw,3rem);height:1.5px}.cinematic-firework-burst--mini .cinematic-firework-ray:after{width:clamp(.8rem,2vw,2rem);height:1px}.effect-spotlight .effect-atmosphere{background:radial-gradient(ellipse 28% 44% at 50% 49%,rgb(255 232 178 / 22%),transparent 70%),radial-gradient(ellipse 70% 80% at 50% 56%,transparent 20%,rgb(44 4 11 / 18%) 78%);-webkit-backdrop-filter:saturate(.92) brightness(.94);backdrop-filter:saturate(.92) brightness(.94)}.effect-invitation .effect-card{transform-origin:2% 50%}.effect-fireworks .effect-card{background:linear-gradient(145deg,#701522f0,#32050ef7)}.effect-fly-through .effect-atmosphere{background:radial-gradient(ellipse at 50% 50%,rgb(255 225 153 / 12%),transparent 54%);-webkit-backdrop-filter:none;backdrop-filter:none}.effect-push-in .effect-atmosphere{background:radial-gradient(ellipse 30% 36% at 50% 52%,rgb(255 236 180 / 26%),transparent 62%),radial-gradient(ellipse 85% 90% at 50% 54%,transparent 10%,rgb(14 0 4 / 60%) 90%);-webkit-backdrop-filter:saturate(.6) brightness(.72);backdrop-filter:saturate(.6) brightness(.72)}.effect-pull-back .effect-atmosphere{background:radial-gradient(ellipse 90% 90% at 50% 48%,rgb(255 226 157 / 28%),transparent 70%),radial-gradient(ellipse 40% 30% at 50% 48%,rgb(255 248 220 / 14%),transparent 55%),radial-gradient(ellipse 110% 110% at 50% 54%,transparent 55%,rgb(20 0 6 / 52%) 100%);-webkit-backdrop-filter:saturate(1.08) brightness(1.06);backdrop-filter:saturate(1.08) brightness(1.06)}.invitation-decor{position:absolute;z-index:22;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.inv-petal{position:absolute;left:var(--inv-x);top:var(--inv-y);width:1.3rem;height:.8rem;border-radius:90% 0;background:#e56b75;box-shadow:0 0 .8rem #ffb1aa;opacity:0;transform:rotate(var(--inv-rot, 0deg)) scale(.4);animation:inv-petal-fall 2.8s var(--inv-delay, 0s) cubic-bezier(.16,1,.3,1) both}@keyframes inv-petal-fall{0%{opacity:0;transform:translate(0) rotate(var(--inv-rot)) scale(.4)}18%{opacity:.92}to{opacity:0;transform:translate(-40px,var(--inv-fall)) rotate(calc(var(--inv-rot) + 240deg)) scale(1.1)}}.inv-spark{position:absolute;left:var(--inv-x);top:var(--inv-y);width:var(--inv-size, 1rem);height:var(--inv-size, 1rem);opacity:0;background:radial-gradient(circle,#fff8d8 0%,#ffd56a 50%,transparent 80%);border-radius:50%;filter:drop-shadow(0 0 .5rem #ffd56a);animation:inv-spark-pop 1.8s var(--inv-delay, 0s) ease-out both}@keyframes inv-spark-pop{0%{opacity:0;transform:scale(0)}25%{opacity:1;transform:scale(2.5)}55%{opacity:.7;transform:scale(1.2)}to{opacity:0;transform:scale(.4)}}.inv-xi{position:absolute;left:var(--inv-x);top:var(--inv-y);font-family:STKaiti,KaiTi,serif;font-size:var(--inv-size, 1.5rem);font-style:normal;color:#f4c969;text-shadow:0 0 1rem rgb(240 182 58 / 70%);opacity:0;animation:inv-xi-bloom 3.2s var(--inv-delay, 0s) cubic-bezier(.16,.84,.22,1) both}@keyframes inv-xi-bloom{0%{opacity:0;transform:scale(.2) rotate(-10deg);filter:blur(.3rem)}20%{opacity:.8;filter:blur(0)}60%{opacity:.55;transform:scale(1) rotate(0)}to{opacity:0;transform:scale(.7) rotate(6deg)}}.push-in-shockwave{position:absolute;z-index:22;top:0;right:0;bottom:0;left:0;pointer-events:none}.push-in-ring{position:absolute;left:50%;top:50%;width:6rem;height:6rem;border:2px solid rgb(255 232 180 / 70%);border-radius:50%;box-shadow:0 0 2.5rem #ffc8647f,inset 0 0 1rem #ffe6aa47;transform:translate(-50%,-50%) scale(.15);opacity:0;animation:push-in-ring-burst 1.6s var(--ring-delay, 0ms) cubic-bezier(.08,.72,.14,1) both}@keyframes push-in-ring-burst{0%{opacity:.9;transform:translate(-50%,-50%) scale(.15)}55%{opacity:.6}to{opacity:0;transform:translate(-50%,-50%) scale(8)}}.push-in-beam{position:absolute;left:50%;top:50%;width:50vmax;height:2px;transform-origin:left center;transform:translateY(-50%) rotate(var(--beam-angle, 0deg));background:linear-gradient(90deg,rgb(255 240 200 / 0%) 0%,rgb(255 230 160 / 28%) 30%,transparent 100%);opacity:0;animation:push-in-beam-sweep 1.4s .12s cubic-bezier(.16,1,.3,1) both}@keyframes push-in-beam-sweep{0%{opacity:0}18%{opacity:1}to{opacity:0}}.pull-back-flare{position:absolute;z-index:22;top:0;right:0;bottom:0;left:0;pointer-events:none;mix-blend-mode:screen}.pull-back-ray{position:absolute;left:50%;top:50%;width:58vmax;height:3px;transform-origin:left center;transform:translateY(-50%) rotate(var(--ray-angle, 0deg)) scaleX(0);background:linear-gradient(90deg,rgb(255 248 230 / 72%) 0%,rgb(255 200 100 / 32%) 40%,transparent 80%);opacity:0;animation:pull-back-ray-shoot 1.2s var(--ray-delay, 0ms) cubic-bezier(.22,1,.36,1) both}@keyframes pull-back-ray-shoot{0%{opacity:0;transform:translateY(-50%) rotate(var(--ray-angle)) scaleX(0)}15%{opacity:.9}60%{transform:translateY(-50%) rotate(var(--ray-angle)) scaleX(1)}to{opacity:0;transform:translateY(-50%) rotate(var(--ray-angle)) scaleX(1.2)}}.spotlight-beams{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;pointer-events:none;mix-blend-mode:screen}.spotlight-beam{position:absolute;top:0;left:var(--beam-x);width:var(--beam-width);height:100%;transform:translate(-50%);background:linear-gradient(180deg,rgb(255 240 200 / 0%) 0%,rgb(255 228 160 / 18%) 12%,rgb(255 210 120 / 12%) 45%,transparent 88%);clip-path:polygon(20% 0%,80% 0%,100% 100%,0% 100%);opacity:0;animation:spotlight-beam-fade 3.8s var(--beam-delay, 0ms) ease-in-out both}@keyframes spotlight-beam-fade{0%{opacity:0}18%{opacity:1}72%{opacity:.88}to{opacity:0}}.effect-reduced .particle-stage{display:none}@media(max-width:720px){.effect-card{width:84vw;min-height:10rem;padding:2rem 1.7rem}.effect-seal-mark{width:5.8rem;height:5.8rem;margin:7rem 0 0 64vw;font-size:3.2rem}}@media(max-width:700px){.join-page{align-items:safe center;padding:.75rem}.join-card{padding:1.35rem 1.1rem 1.6rem}.couple-title{gap:.28rem;letter-spacing:.02em}.winners-summary>div{grid-template-columns:1fr}.winner-grid>.winner-card{flex-basis:calc(50% - 1rem);max-width:none}.wall-page{max-height:none}.draw-stage{overflow:visible}.draw-stage,.winners-summary{min-height:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.petal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:35;overflow:hidden}.petal-overlay-particle{position:absolute;left:0;top:0;font-style:normal;font-size:1.5rem;text-shadow:0 0 .8rem #ff91a3;opacity:0;will-change:transform,opacity;transform-origin:center}
