@font-face{font-family:Lato;src:url("../fonts/lato-regular.f6c9592a7ab6.woff2") format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Lato;src:url("../fonts/lato-bold.0fff97d6cb7c.woff2") format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Palace;src:url("../fonts/palace-serif.d416cfa9de08.woff2") format('woff2');font-weight:400;font-style:normal;font-display:swap}

:root {
  --paper:#fbf7ee; --ink:#27231e; --muted:#8b7967;
  --gold:#b7771c; --line:#ead7b7; --serif:Palace,Georgia,'Times New Roman',serif;
  --sans:Lato,'Segoe UI',sans-serif; --radius:18px; --radius-lg:28px;
  --shadow:0 3px 10px #8253150b; --shadow-lg:0 8px 28px #82531515;
  --header-height:clamp(68px,8svh,84px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:20px}
body{margin:0;min-width:320px;min-height:100svh;background:var(--paper);color:var(--ink);font:14px/1.5 var(--sans)}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:url("../images/ceremony-temple-background-v2.b9aa493be8e9.png") center top / 100% 100% no-repeat,radial-gradient(ellipse at 50% 20%,#fff 20%,#fbf7ed 65%,#efdab0)}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;transition:background .2s,box-shadow .2s,transform .2s}
button:disabled{cursor:not-allowed;opacity:.55}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a56d15;outline-offset:4px}
a{color:inherit}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif)}svg{flex-shrink:0}
[hidden]{display:none!important}
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:#6d4e25;color:white;padding:12px 20px;border-radius:8px}
.skip-link:focus{top:10px}

/* Keep the header's center open for the idol, as in the reference. */
.site-header{height:var(--header-height);border-bottom:1px solid #dec39575;background:linear-gradient(90deg,transparent 4.5%,#ffffffed 4.5%,#ffffffed 35%,#ffffff90 50%,#ffffffed 65%,#ffffffed 95.5%,transparent 95.5%)}
.header-inner{width:88%;max-width:1900px;height:100%;margin:auto;display:flex;align-items:center;gap:22px;position:relative;z-index:6}
.hospital-brand{width:160px;flex:none;border-radius:8px;overflow:hidden}
.hospital-brand img{width:100%;height:auto}
.brand-divider{height:38px;width:1px;background:#e1cfae;flex:none}
.event-brand{display:flex;align-items:center;gap:11px;white-space:nowrap}
.event-ganesh-icon{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:50% 35%;border:1px solid #d3b374;box-shadow:0 2px 4px #62401125}
.event-brand-text{display:flex;flex-direction:column}
.event-brand-top{color:#785e47;font-size:8px;letter-spacing:1.55px;font-weight:700;margin-bottom:2px}
.event-brand-name{font-family:var(--serif);font-size:24px;line-height:1.2}
.brand-star{font-size:14px;color:var(--gold);margin-left:9px}
.main-nav{display:flex;align-items:center;gap:3px;margin-left:auto}
.nav-button{display:flex;align-items:center;gap:9px;border:0;border-radius:13px;background:transparent;padding:12px 15px;color:#725c45;font-size:13px;white-space:nowrap}
.nav-button .icon{width:18px;height:18px}
.nav-button:hover{background:#f7eddd}
.nav-button[aria-current=page]{background:linear-gradient(110deg,#f0e4ce,#f4ead6);color:#684717}
.nav-count{font-size:11px;min-width:25px;padding:0 5px;line-height:19px;background:#f3e8d3;border-radius:12px}
.icon-button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:#fffaf1;color:#81674a}
.icon-button:hover{background:#f2e5ce}
.help-button{background:transparent;border:0;margin-left:3px}

.main-shell{width:90.5%;max-width:1960px;margin:0 auto}
.celebration-hero{height:clamp(285px,34.35svh,425px);position:relative;display:grid;grid-template-columns:29% 43% 28%;align-items:center;padding:0 1.4% 0 2.4%}
.page-heading-text{grid-column:1;position:relative;z-index:2;align-self:center;padding-bottom:2px}
.eyebrow{display:flex;align-items:center;gap:10px;color:#a6651d;font-size:9px;font-weight:700;letter-spacing:1.8px;line-height:1.5}
.small-rule{height:1px;width:27px;background:#c98f43;flex:none}
.page-heading-text h1{font-size:clamp(36px,3.3vw,67px);letter-spacing:-1.7px;line-height:.98;margin-top:14px;white-space:nowrap}
.page-heading-text h1 em{display:block;font-weight:400;font-style:normal;color:#b37d2e}
.page-description{font-size:clamp(13px,1.01vw,18px);line-height:1.3;color:#8b7967;margin-top:13px;max-width:355px}
.features-row{display:flex;justify-content:space-between;max-width:360px;margin-top:12px;gap:12px}
.feature-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;font-size:9px;letter-spacing:1.5px;line-height:1.45;color:#473d30}
.feature-icon{width:47px;height:47px;display:flex;align-items:center;justify-content:center;border:1px solid #e8d4b5;border-radius:50%;color:#b4751c;background:#fffdf7b8}
.feature-icon .icon{width:27px;height:27px;stroke-width:1.3}
.hero-ganesh-banner{position:absolute;z-index:3;left:50%;bottom:0;transform:translateX(-50%);height:calc(100% + var(--header-height) - 14px);width:44%;display:flex;justify-content:center;align-items:flex-end;pointer-events:none}
.hero-ganesh-banner img{position:relative;z-index:1;width:100%;height:108%;object-fit:contain;object-position:center bottom;transform:translateY(27px);filter:drop-shadow(0 5px 8px #71501119)}
.idol-halo{position:absolute;left:50%;top:4%;transform:translateX(-50%);width:95%;height:96%;border-radius:50%;background:radial-gradient(ellipse,#fff9dcaf 20%,#ffefc145 52%,transparent 70%)}
.page-heading-right{grid-column:3;align-self:end;padding-bottom:23px;position:relative;z-index:2}
.om-quote{text-align:center;margin:0 auto 15px;max-width:245px;color:#826c56}
.om-symbol{display:flex;justify-content:center;align-items:center;gap:19px;font-family:Georgia,serif;font-size:31px;line-height:1.3;color:#b57b23;margin-bottom:2px}
.om-symbol>span{font-size:18px;color:#ce9b51}
.om-quote p{font-size:15px;line-height:1.4}
.quote-ornament{display:flex;align-items:center;justify-content:center;gap:5px;margin:9px auto 0;color:#b77b26;font-size:10px}
.quote-ornament::before,.quote-ornament::after{content:"";width:39px;height:1px;background:linear-gradient(90deg,transparent,#dba550)}
.quote-ornament::after{transform:rotate(180deg)}
.stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.stat-card{min-width:0;min-height:104px;padding:12px 5px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #ecd7b9;border-radius:11px;background:linear-gradient(150deg,#ffffffed,#fffaf2e6);box-shadow:0 3px 4px #80561609}
.stat-icon{display:flex;align-items:center;justify-content:center;color:#b77a20;margin-bottom:7px}
.stat-icon .icon{width:24px;height:24px}
.stat-value{font-size:23px;line-height:1.15;letter-spacing:-.75px;font-weight:700;font-variant-numeric:tabular-nums;color:#201d19}
.stat-label{font-size:12px;color:#806d58;margin-top:2px;white-space:nowrap}

/* A full-width stage with six real, responsive ticket reels. */
.ceremony-layout,.ceremony-content{min-width:0}
.draw-stage{position:relative;z-index:4;padding:8px 5.25% 14px;min-height:490px;border:1px solid #dfb77a;border-radius:30px;background:radial-gradient(ellipse at 50% 42%,#fffefd 20%,#fffdfaee 62%,#fcf0d7dc 100%);box-shadow:0 3px 9px #82541620,inset 0 0 0 2px #ffffffc4;isolation:isolate}
.draw-stage::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 2% 43%,#fffbee 0 9px,transparent 22px),radial-gradient(circle at 97% 31%,#fff9df 0 5px,transparent 18px),radial-gradient(circle at 6% 89%,#fff4d9 0 4px,transparent 27px)}
.stage-corner{position:absolute;top:18px;width:27px;height:27px;border-top:1.5px solid #c08a32;pointer-events:none}
.stage-corner-left{left:13px;border-left:1.5px solid #c08a32;border-radius:4px 0 0}
.stage-corner-right{right:13px;border-right:1.5px solid #c08a32;border-radius:0 4px 0 0}
.stage-topline{display:flex;justify-content:space-between;align-items:center;gap:20px;position:relative;margin:0 -1.8%;min-height:31px}
.stage-topline::before{content:"";position:absolute;z-index:-1;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,#dfbd8855,#e7cfab90,#dfbd8855)}
.stage-topline::after{content:"✧";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fffcf6;color:#e4c89d;font-size:18px;padding:0 4px}
.stage-eyebrow{display:flex;align-items:center;gap:11px;padding-right:14px;background:#fffcf6;font-size:10px;letter-spacing:1.55px;color:#ac6a13}
.stage-eyebrow .icon{width:18px;height:18px}
.draw-status{display:flex;align-items:center;gap:13px;font-size:13px;line-height:1.4;padding:6px 15px 6px 18px;background:#fffaf0;border:1px solid #e9cf9f;border-radius:14px;color:#7b531e;white-space:nowrap;box-shadow:0 0 0 5px #fffcf6}
.draw-status::after{content:"→";font-size:20px;line-height:16px;color:#ab6e16}
.stage-intro{text-align:center;margin-top:15px}
.stage-intro h2{font-size:clamp(30px,2.56vw,51px);letter-spacing:-1.1px;line-height:1.12;color:#1e1b18}
.stage-intro p{font-size:clamp(14px,1.17vw,21px);color:#968674;margin-top:0;line-height:1.5}
.draw-prize-summary{display:flex;gap:9px;align-items:center;justify-content:center;margin:4px auto 3px;min-height:29px;font-size:11px;letter-spacing:.3px;color:#968674}
.draw-prize-summary img{width:29px;height:29px;object-fit:cover;border:1px solid #e5d1ad;border-radius:50%}
.draw-prize-summary strong{font-size:14px;color:#584735;font-weight:400;letter-spacing:0;margin-left:6px}
.summary-divider{height:13px;width:1px;background:#dec8a5}
#selected-prize-count{font-size:12px;letter-spacing:0}
.winners-grid{text-align:center;position:relative;padding-top:3px}
.ticket-card{min-width:0}
.ticket-eyebrow{display:flex;align-items:center;justify-content:center;gap:14px;color:#b37423;font-size:10px;letter-spacing:2.7px;line-height:1.6;margin-bottom:10px}
.ticket-eyebrow::before,.ticket-eyebrow::after{content:"";width:58px;height:1px;background:linear-gradient(90deg,transparent,#ddbf94)}
.ticket-eyebrow::after{transform:rotate(180deg)}
.slot-row{display:flex;justify-content:center;gap:11px;max-width:992px;margin:auto}
.slot-box{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;flex:1 1 0;max-width:157px;height:clamp(116px,9.4vw,185px);overflow:hidden;border:1px solid #cf902f;border-radius:13px;background:linear-gradient(180deg,#fffdfa 0%,#fbf6ea 49.7%,#fffcf6 50%,#f8ecd1 100%);box-shadow:0 3px 2px #b3926140,inset 0 0 0 2px #fff9ee;color:#a37b3c;font-family:var(--sans);font-size:clamp(64px,6.2vw,110px);font-variant-numeric:tabular-nums;line-height:1}
.slot-box::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#ffffffcf;pointer-events:none}
.preview .slot-box{font-size:0}
.preview .slot-box::before{content:"";width:72%;height:8px;background:#b29357;box-shadow:0 1px 0 #ffffffa0;z-index:1}
.preview .slot-box.is-spinning{font-size:clamp(64px,6.2vw,110px)}
.preview .slot-box.is-spinning::before{display:none}
.winner-name{color:#5a3d17;font-size:26px;font-weight:700;margin:13px 0 0;line-height:1.4;overflow-wrap:anywhere}
.preview .winner-name{display:flex;align-items:center;justify-content:center;gap:25px;font-style:italic;font-weight:400;font-size:23px;margin-top:15px}
.preview .winner-name::before,.preview .winner-name::after{content:"✧";color:#b37722;font-style:normal;font-size:31px;line-height:1}
.ticket-raw{font-size:12px;color:#8b7555;margin-top:3px;overflow-wrap:anywhere}
.handover-control{display:inline-flex;align-items:center;gap:7px;margin:8px 0;font-size:12px;color:#8b7758;cursor:pointer}
.handover-control input{accent-color:#90732f;width:16px;height:16px;margin:0;cursor:pointer}
.handover-control.is-handed{color:#536947}
.winners-grid.multiple{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:10px auto}
.multiple .ticket-card{padding:12px 8px;border:1px solid #e4d0ac;border-radius:12px;background:#fffaf1}
.multiple .ticket-eyebrow{font-size:7px;letter-spacing:1px;margin-bottom:8px}
.multiple .ticket-eyebrow::before,.multiple .ticket-eyebrow::after{display:none}
.multiple .slot-row{gap:4px}
.multiple .slot-box,.multiple .preview .slot-box.is-spinning{height:48px;font-size:27px;border-radius:5px}
.multiple .preview .slot-box{font-size:0}
.multiple .preview .slot-box::before{height:3px}
.multiple .winner-name,.multiple .preview .winner-name{display:block;font-size:12px;line-height:1.4;margin-top:9px}
.multiple .winner-name::before,.multiple .winner-name::after{display:none}
.multiple .handover-control{font-size:10px;text-align:left}
.is-spinning{animation:reel-glow 1.2s ease-in-out infinite}
.draw-controls{display:flex;align-items:flex-end;gap:15px;margin-top:2px}
.prize-select-field{flex:1;min-width:0}
.prize-select-field>label{display:flex;gap:8px;color:#76522a;font-size:12px;margin-bottom:3px;line-height:1.4}
.select-wrap{position:relative;display:flex;align-items:center}
.select-wrap>.icon{position:absolute;left:17px;width:23px;height:23px;color:#b6751b;pointer-events:none}
select{appearance:none;max-width:100%;border:1px solid #e3c79c;border-radius:10px;padding:12px 38px 12px 53px;color:#29241f;background-color:#ffffffeb;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='10'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23a96913' stroke-width='1.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 17px center;cursor:pointer}
.select-wrap select{width:100%;height:54px;font-size:17px}
.gold-button{display:flex;align-items:center;gap:14px;flex:1;min-height:54px;padding:12px 22px;border:1px solid #b58836;border-radius:11px;background:linear-gradient(115deg,#c8a050,#e7c983 52%,#c8a052);color:#523a13;font-size:18px;box-shadow:0 2px 3px #78531838,inset 0 2px 1px #f5dda7}
.gold-button .icon{width:24px;height:24px}.button-arrow{margin-left:auto}
.gold-button:hover:not(:disabled){background:linear-gradient(115deg,#d3ae64,#efd797 52%,#d1ad64);box-shadow:0 4px 10px #78531830;transform:translateY(-1px)}
.gold-button:active:not(:disabled){transform:translateY(1px)}
.draw-progress-wrap{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:10px 0;color:#94764b;font-size:12px}
.draw-progress-wrap:not(:has(> :not([hidden]))){display:none}
progress{appearance:none;height:5px;width:150px;border:0;border-radius:6px;overflow:hidden;background:#ede0c5}progress::-webkit-progress-bar{background:#ede0c5}progress::-webkit-progress-value{background:#b18b3e}progress::-moz-progress-bar{background:#b18b3e}
.error-message{font-size:13px;color:#9a3434;text-align:center;margin-top:12px;overflow-wrap:anywhere}.error-message:empty{display:none}
#retry-button{display:block;margin:10px auto 0}
.prizes-preview{display:none}
.text-button{border:0;padding:0;background:none;display:inline-flex;align-items:center;gap:7px;color:#986b22;font-size:12px;white-space:nowrap}
.text-button:hover{color:#674718}
.lotus{width:43px;height:35px;stroke:currentColor;stroke-width:1.1;fill:none;stroke-linejoin:round}

.site-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:9px 2.3% 14px;color:#77634b;font-size:10px}
.site-footer p{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.site-footer strong{font-weight:400}.footer-star{font-size:16px;color:#ab721c}.footer-separator{color:#caa365;margin:0 6px}
.event-tools{display:flex;align-items:center;gap:12px}.utility-button{display:flex;align-items:center;gap:8px;font-size:10px;color:#796349;border:0;background:transparent;padding:5px 0;white-space:nowrap}.utility-button .icon{width:17px;height:17px}.utility-button:hover{color:#a26918}.utility-button[aria-pressed=false]#sound-button{opacity:.65}
.outline-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:13px;padding:12px 17px;border:1px solid #d9c394;border-radius:11px;color:#886728;background:#fffdf7;white-space:nowrap}.outline-button:hover:not(:disabled){background:#f2e6ca;transform:translateY(-1px)}.outline-button .icon{width:17px;height:17px}
#view-prizes,#view-winners{padding:35px 2.3% 15px;min-height:calc(100svh - var(--header-height) - 55px)}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.page-heading h1{font-size:clamp(30px,3vw,48px);line-height:1.2;margin-top:9px;letter-spacing:-1px}.page-heading h1 em{font-style:normal;color:#ac7b2e}.page-heading .page-description{max-width:none;font-size:15px}

.prize-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:23px;margin:33px 0}.gallery-card{padding:0;border:1px solid #e2d3b7;background:#fffdf8;border-radius:var(--radius);text-align:left;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;position:relative;transition:box-shadow .3s var(--ease),transform .3s var(--ease),border-color .3s var(--ease)}.gallery-card:hover:not(:disabled){transform:translateY(-6px);border-color:#b48b36;box-shadow:var(--shadow-lg)}.gallery-card.selected{border-color:#b48b36}.gallery-card-image{width:100%;height:195px;object-fit:contain;background:#faf6ed;padding:20px;mix-blend-mode:multiply}.gallery-card-image[src*='watch']{object-fit:cover;padding:0;mix-blend-mode:normal}.gallery-card svg.gallery-card-image{stroke:#b89041;stroke-width:.85;fill:none;padding:46px;background:radial-gradient(ellipse,#f7eaca,#fbf6e9)}.gallery-card-body{display:block;padding:20px}.gallery-card-body h3{font-family:var(--serif);font-size:26px;line-height:1.3}.gallery-card-body p{font-size:11px;color:#968366;margin-top:7px}.gallery-card-action{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eee2ca;margin-top:19px;padding-top:13px;font-size:11px;color:#a57d30;font-weight:700}.gallery-card-action svg{width:16px;height:16px}.gallery-note{display:flex;justify-content:center;align-items:center;gap:17px;text-align:left;margin:30px 0;color:#a48a55}.gallery-note p{font-family:var(--serif);font-size:20px;line-height:1.4}.gallery-note strong{font-weight:400;color:#775a2a}
.winner-register{border:1px solid #e1d4b9;background:#fffdf8;border-radius:var(--radius);box-shadow:var(--shadow);margin-top:32px;overflow:hidden;min-height:320px}.register-toolbar{padding:20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #eadeca;background:#fdf9f0}.search-field{position:relative;display:flex;align-items:center;max-width:360px;flex:1;min-width:100px}.search-field .icon{position:absolute;left:12px;color:#9b865f;width:17px;height:17px}.search-field input{width:100%;min-width:0;border:1px solid #e1d3b3;border-radius:11px;padding:10px 12px 10px 37px;background:#fffdf8;color:#675233;font-size:12px}.search-field input::placeholder{color:#a49882}.filter-field select{padding:10px 35px 10px 12px;font-size:11px}.results-count{font-size:11px;color:#95856c;margin-left:auto}.table-scroll{overflow:auto}.winners-table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap;font-size:12px}.winners-table thead{background:#f6efdf;color:#957a4c;font-size:9px;letter-spacing:1px;text-transform:uppercase}.winners-table th{font-weight:700;padding:14px 24px}.winners-table td{padding:16px 24px;border-bottom:1px solid #eee5d5}.winners-table td:first-child{font-variant-numeric:tabular-nums;letter-spacing:1px;font-weight:700;color:#8b6525}.winners-table tr:last-child td{border-bottom:0}.winners-table tbody tr:hover{background:#faf5e9}.status-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;padding:5px 10px;border-radius:999px}.status-badge.is-pending{color:#a07b3b;background:#f6edda}.status-badge.is-handed{color:#5a7352;background:#edf2e7}.winners-table .handover-control{margin:0}.empty-state{text-align:center;padding:55px 20px}.empty-icon{width:46px;height:46px;stroke:#b69451;stroke-width:1.3;fill:none;margin:0 auto 15px}.empty-state h2{font-size:28px;color:#70542c}.empty-state p{font-size:12px;color:#a08c6b;margin:7px 0 22px}
.help-dialog{border:1px solid #d5ba83;border-radius:var(--radius-lg);width:min(540px,calc(100% - 32px));padding:35px;color:var(--ink);background:#fffaf0;box-shadow:0 25px 100px #2817074d}.help-dialog::backdrop{background:#291c168c;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:14px;top:14px;font-size:26px}.help-lotus{color:#aa8540;margin-bottom:17px}.help-dialog h2{font-size:30px;line-height:1.2;margin:9px 0 25px}.help-steps{counter-reset:step;list-style:none;padding:0;margin:0}.help-steps li{position:relative;padding-left:40px;margin-top:20px;counter-increment:step}.help-steps li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:0;font-size:12px;color:#b58d3d}.help-steps strong{font-size:14px;color:#715426}.help-steps p{font-size:12px;color:#8f7e60;margin-top:5px;line-height:1.7}.help-note{border-top:1px solid var(--line);margin-top:25px;padding-top:20px;font-size:11px;color:#9b845b}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#4c3822;color:#fff5df;border:1px solid #ba975e;border-radius:13px;box-shadow:0 16px 40px -8px #37241150;padding:13px 20px;font-size:12px;max-width:calc(100% - 32px);width:max-content;z-index:100}.noscript-notice{background:#fff0d5;border:1px solid #b98a3e;padding:16px;text-align:center}#celebration{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:50}

/* Artwork is wrapped by the JS so missing product photos can use a gift icon. */
.gallery-card-image{display:flex;align-items:center;justify-content:center;mix-blend-mode:normal}
.gallery-card-image img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.gallery-card-image .gift-icon{width:90px;height:90px;color:#b48a3d}
.gallery-card-body{width:100%}
@keyframes reel-glow{0%,100%{box-shadow:0 3px 2px #b3926140,0 0 8px #d0ae4520}50%{box-shadow:0 3px 2px #b3926140,0 0 22px #d0ae4560}}

@media(min-width:1400px) and (min-height:850px){
  .draw-stage{min-height:calc(100svh - var(--header-height) - clamp(285px,34.35svh,425px) - 52px);display:flex;flex-direction:column}
  .stage-intro{margin-top:15px}
  .winners-grid:not(.multiple){margin-top:auto}
  .winners-grid.multiple{margin-top:auto;margin-bottom:auto;width:100%}
  .draw-controls{margin-top:auto}
  .multiple .ticket-card{padding:clamp(6px,1svh,12px) 8px}
  .multiple .ticket-eyebrow{margin-bottom:clamp(4px,0.6svh,8px)}
  .multiple .slot-box,.multiple .preview .slot-box.is-spinning{height:clamp(40px,6.4svh,64px);font-size:clamp(24px,3.6svh,38px)}
  .multiple .winner-name,.multiple .preview .winner-name{margin-top:clamp(5px,0.8svh,9px)}
}
@media(max-width:1399px){
  .header-inner{gap:15px;width:89%}.hospital-brand{width:137px}.brand-divider{height:32px}.event-brand-name{font-size:21px}.event-brand-top{font-size:6.5px;letter-spacing:1.2px}.event-ganesh-icon{width:34px;height:34px}.event-brand{gap:8px}
  .nav-button{font-size:12px;padding:10px 11px;gap:7px}.help-button{width:29px;margin:0}
  .celebration-hero{grid-template-columns:30% 41% 29%;padding-left:2%}
  .page-heading-text h1{font-size:3.28vw}.page-heading-text .eyebrow{font-size:7.3px;letter-spacing:1.3px;gap:8px}.small-rule{width:22px}
  .features-row{max-width:305px;margin-top:11px}.feature-item{font-size:8px;letter-spacing:1px;gap:5px}.feature-icon{width:40px;height:40px}.feature-icon .icon{width:24px;height:24px}
  .om-quote{max-width:215px;margin-bottom:12px}.om-quote p{font-size:13px}.om-symbol{font-size:27px}.page-heading-right{padding-bottom:20px}
  .stats-row{gap:9px}.stat-card{min-height:88px;padding:10px 3px}.stat-icon{margin-bottom:5px}.stat-icon .icon{width:21px;height:21px}.stat-value{font-size:21px}.stat-label{font-size:11px}
  .draw-stage{min-height:0;padding-top:8px;padding-bottom:14px;border-radius:26px}.stage-intro{margin-top:13px}.stage-intro h2{font-size:36px}.stage-intro p{font-size:16px}
  .stage-eyebrow{font-size:8px;letter-spacing:1.4px}.draw-status{font-size:11px;padding:5px 12px}.draw-prize-summary{margin-top:6px}.ticket-eyebrow{font-size:9px;margin-bottom:9px}
  .slot-row{max-width:850px;gap:10px}.slot-box{height:128px;max-width:133px;font-size:88px}.preview .slot-box::before{height:6px}
  .preview .winner-name{font-size:20px;margin-top:12px;gap:20px}.preview .winner-name::before,.preview .winner-name::after{font-size:27px}
  .draw-controls{margin-top:2px}.select-wrap select,.gold-button{height:49px;min-height:49px;font-size:16px}.gold-button .icon{width:22px;height:22px}.prize-select-field>label{font-size:11px}
}
@media(min-width:1101px) and (max-height:800px){
  .celebration-hero{height:270px}.page-heading-text h1{margin-top:11px}.page-description{margin-top:10px}.page-heading-right{padding-bottom:15px}.om-quote{margin-bottom:9px}.quote-ornament{margin-top:6px}
  .stage-intro{margin-top:10px}.stage-intro h2{font-size:34px}.stage-intro p{font-size:16px}.draw-prize-summary{margin-top:4px}.slot-box{height:120px}.preview .winner-name{margin-top:10px;font-size:20px}.draw-stage{padding-bottom:13px;min-height:0}.site-footer{padding-top:7px;padding-bottom:9px}
}
@media(max-width:1100px){
  .header-inner{width:92%;gap:12px}.event-ganesh-icon{display:none}.nav-button{font-size:11px;padding:10px}.event-brand-name{font-size:20px}.hospital-brand{width:128px}
  .main-shell{width:92%}.celebration-hero{height:290px;grid-template-columns:31% 37% 32%;padding:0 1.5%}
  .hero-ganesh-banner{height:100%;width:38%;left:49%}.hero-ganesh-banner img{height:100%;transform:none}.page-heading-text h1{font-size:3.5vw;letter-spacing:-1.2px}.page-heading-text .eyebrow{font-size:6px;letter-spacing:.9px}.page-heading-text .small-rule{width:14px}.page-description{font-size:13px;max-width:270px}
  .features-row{gap:8px}.feature-item{font-size:7px;letter-spacing:.7px}.feature-icon{width:36px;height:36px}.feature-icon .icon{width:21px;height:21px}
  .om-quote{max-width:210px}.om-quote p{font-size:12px}.page-heading-right{padding-bottom:23px}.stats-row{gap:7px}.stat-value{font-size:19px}.stat-label{font-size:10px}.stat-card{min-height:85px}
  .draw-stage{padding:10px 4% 18px}.stage-topline{margin:0}.stage-intro{margin-top:18px}.stage-intro h2{font-size:33px}.stage-intro p{font-size:15px}.draw-prize-summary{margin-top:9px}.winners-grid{padding-top:5px}.slot-box{height:115px;font-size:76px}.preview .winner-name{font-size:19px;margin-top:17px}.draw-controls{margin-top:10px}
  .winners-grid.multiple{grid-template-columns:repeat(3,minmax(0,1fr))}.prize-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.gallery-card-image{height:175px}
}
@media(max-width:800px){
  :root{--header-height:116px}
  body::before{background-size:auto 100svh;background-position:center top}
  .site-header{height:auto;min-height:var(--header-height);background:#fffdf8f2}.header-inner{flex-wrap:wrap;padding:12px 0 0;gap:10px 14px}.hospital-brand{width:135px}.brand-divider{height:31px}.event-brand-name{font-size:23px}.event-brand-top{font-size:7px;letter-spacing:1.3px}.help-button{margin-left:auto;width:30px}
  .main-nav{order:5;width:100%;justify-content:center;border-top:1px solid #ecdec7;margin:0;padding:7px 0;gap:8px}.nav-button{flex:1;justify-content:center;max-width:210px;padding:9px 10px;font-size:12px}.nav-button .icon{width:17px;height:17px}
  .celebration-hero{height:auto;min-height:385px;grid-template-columns:1fr 1fr;padding:25px 2% 18px;align-items:start;gap:18px 12px}
  .page-heading-text{align-self:start;padding-top:4px}.page-heading-text h1{font-size:clamp(31px,5.2vw,42px);white-space:normal;line-height:1.03}.page-heading-text .eyebrow{font-size:6.5px;letter-spacing:1px;white-space:nowrap}.page-description{font-size:13px;max-width:260px}.features-row{max-width:280px;margin-top:16px}.feature-item{font-size:7px}.feature-icon{width:38px;height:38px}
  .hero-ganesh-banner{position:relative;grid-column:2;grid-row:1;left:auto;bottom:auto;transform:none;height:265px;width:100%;align-self:end;margin-top:-18px}.hero-ganesh-banner img{width:100%;height:100%}.idol-halo{width:110%}
  .page-heading-right{grid-column:1/-1;padding:0;display:flex;align-items:center;justify-content:space-between;gap:20px}.om-quote{flex:1;margin:0;max-width:265px;display:flex;align-items:center;gap:12px;text-align:left}.om-symbol{font-size:28px;margin:0}.om-symbol>span,.quote-ornament{display:none}.om-quote p{font-size:12px;line-height:1.4}.stats-row{flex:1.25;gap:8px}.stat-card{min-height:78px;padding:8px 5px}.stat-icon .icon{width:19px;height:19px}.stat-icon{margin-bottom:3px}.stat-value{font-size:20px}.stat-label{font-size:10px}
  .draw-stage{border-radius:23px;padding:12px 4% 20px}.stage-eyebrow{font-size:7px;letter-spacing:1px;gap:6px}.stage-eyebrow .icon{width:14px;height:14px}.stage-topline::after{display:none}.draw-status{font-size:10px;gap:8px;padding:4px 10px}.draw-status::after{font-size:16px}.stage-intro h2{font-size:32px}.stage-intro p{font-size:14px;max-width:420px;margin:7px auto 0}.slot-row{gap:8px}.slot-box{height:104px;font-size:65px;border-radius:9px}.preview .slot-box.is-spinning{font-size:65px}.preview .slot-box::before{height:5px}.preview .winner-name{font-size:18px;gap:13px}.preview .winner-name::before,.preview .winner-name::after{font-size:22px}.draw-controls{gap:12px;margin-top:15px}.select-wrap select,.gold-button{font-size:14px}.gold-button{padding:11px 15px;gap:10px}.select-wrap>.icon{left:12px;width:20px;height:20px}.select-wrap select{padding-left:41px}.gold-button .icon{width:20px;height:20px}
  .site-footer{font-size:9px;gap:12px;padding:12px 1% 18px}.site-footer p{gap:6px}.event-tools{gap:6px}.footer-separator{margin:0 3px}.utility-button{font-size:9px;gap:5px}
  #view-prizes,#view-winners{padding-top:28px}.page-heading{flex-wrap:wrap;align-items:flex-start}.page-heading .eyebrow{font-size:8px}.page-heading .page-description{font-size:13px}.prize-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-card-body{padding:17px}.gallery-card-body h3{font-size:25px}.register-toolbar{padding:13px;flex-wrap:wrap;gap:10px}.search-field{max-width:none;flex:1 1 65%}.filter-field{order:2}.results-count{order:3}.winners-table th,.winners-table td{padding:14px 18px}.winner-register{margin-top:24px}
}
@media(max-width:520px){
  .header-inner{width:92%;gap:8px 10px}.hospital-brand{width:112px}.brand-divider{height:29px}.event-brand-name{font-size:19px}.event-brand-top{font-size:5.5px;letter-spacing:.85px}.brand-star{font-size:11px;margin-left:4px}.help-button{width:24px}.help-button .icon{width:19px;height:19px}.main-nav{gap:3px}.nav-button{font-size:10px;gap:6px;padding:9px 6px}.nav-button .icon{width:15px;height:15px}.nav-count{font-size:9px;line-height:17px;min-width:22px}
  .main-shell{width:94%}.celebration-hero{padding:20px 3% 16px;min-height:0;gap:12px 0;grid-template-columns:52% 48%}.page-heading-text .eyebrow{font-size:5.5px;letter-spacing:.7px;gap:5px}.page-heading-text .small-rule{width:10px}.page-heading-text h1{font-size:29px;letter-spacing:-1px;margin-top:12px;line-height:1.02}.page-description{font-size:11px;max-width:170px;line-height:1.45;margin-top:11px}.features-row{gap:6px;margin-top:12px;max-width:185px}.feature-item{font-size:5.5px;letter-spacing:.65px;gap:5px}.feature-icon{width:31px;height:31px}.feature-icon .icon{width:18px;height:18px}
  .hero-ganesh-banner{height:231px;margin:0 -6% 0 0;width:112%;align-self:center}.page-heading-right{flex-direction:column;gap:13px}.om-quote{max-width:330px;text-align:center;gap:12px}.om-quote p{font-size:11px}.om-symbol{font-size:26px}.stats-row{width:100%;gap:9px}.stat-card{min-height:76px;display:grid;grid-template-columns:25px auto;column-gap:7px;justify-content:center;align-content:center;padding:9px 4px}.stat-icon{grid-row:1;margin:0}.stat-value{font-size:19px;grid-column:2;line-height:1.2}.stat-label{grid-column:1/-1;margin-top:5px;font-size:10px}
  .draw-stage{padding:12px 5% 19px;border-radius:21px}.stage-corner{top:13px;width:17px;height:20px}.stage-corner-left{left:9px}.stage-corner-right{right:9px}.stage-topline{flex-wrap:wrap;justify-content:center;gap:8px;min-height:25px}.stage-topline::before{display:none}.stage-eyebrow{font-size:6px;letter-spacing:1px;gap:5px;padding:0}.stage-eyebrow .icon{width:12px;height:12px}.draw-status{font-size:8px;gap:5px;padding:4px 7px;border-radius:9px;box-shadow:none}.draw-status::after{font-size:13px}.stage-intro{margin-top:15px}.stage-intro h2{font-size:28px;line-height:1.09;letter-spacing:-.7px;max-width:320px;margin:auto}.stage-intro p{font-size:12px;line-height:1.45;max-width:280px;margin-top:8px}.draw-prize-summary{gap:6px;font-size:8px;margin-top:12px;min-height:26px}.draw-prize-summary img{width:25px;height:25px}.draw-prize-summary strong{font-size:11px;margin-left:3px}#selected-prize-count{font-size:9px}.summary-divider{height:11px}.ticket-eyebrow{font-size:7px;letter-spacing:1.8px;gap:9px;margin:4px 0 9px}.ticket-eyebrow::before,.ticket-eyebrow::after{width:28px}.slot-row{gap:6px}.slot-box{height:70px;font-size:42px;border-radius:7px}.preview .slot-box.is-spinning{font-size:42px}.preview .slot-box::before{height:4px}.preview .winner-name{font-size:14px;gap:8px;line-height:1.4;margin-top:16px}.preview .winner-name::before,.preview .winner-name::after{font-size:19px}.winner-name{font-size:22px}.draw-controls{flex-direction:column;align-items:stretch;gap:12px;margin-top:18px}.select-wrap select{height:48px;font-size:15px}.gold-button{min-height:49px;font-size:15px;padding:12px 16px}.prize-select-field>label{font-size:10px;margin-bottom:5px}
  .winners-grid.multiple{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.multiple .slot-row{gap:2px}.multiple .ticket-card{padding:10px 5px}.multiple .slot-box,.multiple .preview .slot-box.is-spinning{height:33px;font-size:19px;border-radius:4px}.multiple .ticket-eyebrow{font-size:5px;letter-spacing:.5px}.multiple .winner-name,.multiple .preview .winner-name{font-size:10px}.multiple .handover-control{font-size:9px;gap:4px}.multiple .handover-control input{width:13px;height:13px}
  .site-footer{flex-direction:column;gap:8px;padding:12px 0 19px;font-size:8px}.utility-button{font-size:10px;padding:5px}.event-tools{gap:10px}.site-footer p{gap:5px}.footer-star{font-size:13px}
  .page-heading h1{font-size:32px}.page-heading .eyebrow{font-size:6px;letter-spacing:1px}.outline-button{font-size:11px;padding:10px 13px}.prize-gallery{gap:12px;margin-top:24px}.gallery-card-image{height:150px;padding:13px}.gallery-card-body{padding:13px}.gallery-card-body h3{font-size:22px}.gallery-card-body p,.gallery-card-action{font-size:10px}.gallery-card-action{margin-top:13px;padding-top:11px}.help-dialog{padding:27px 24px}.help-dialog h2{font-size:27px}.help-dialog .eyebrow{font-size:7px;letter-spacing:1px}.toast{padding:11px 15px;font-size:11px}.draw-progress-wrap{gap:8px;font-size:10px}
}
@media(max-width:360px){
  .hospital-brand{width:94px}.event-brand-name{font-size:17px}.event-brand-top{font-size:5px;letter-spacing:.6px}.header-inner{gap:8px}.help-button{width:22px}.brand-star{margin-left:2px}.page-heading-text h1{font-size:25px}.page-heading-text .eyebrow{font-size:4.7px;letter-spacing:.4px}.page-description{font-size:10px}.feature-item{font-size:4.8px;letter-spacing:.4px}.hero-ganesh-banner{height:205px}.stat-value{font-size:17px}.stat-card{column-gap:3px}.stat-icon .icon{width:18px;height:18px}.stage-eyebrow{font-size:5px;letter-spacing:.6px}.draw-status{font-size:7px}.stage-intro h2{font-size:25px}.slot-row{gap:4px}.slot-box{height:61px;font-size:36px}.preview .winner-name{font-size:12px;gap:6px}.gallery-card-image{height:125px}.gallery-card-body h3{font-size:20px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.gold-button:hover,.gallery-card:hover{transform:none}}
@media print{body::before,.site-header,.site-footer,.register-toolbar,.page-heading button,.winners-table th:last-child,.winners-table td:last-child,#view-ceremony,#view-prizes,#celebration{display:none!important}#view-winners{display:block!important;padding:0;min-height:0}.main-shell{width:100%}.winner-register{border:0;box-shadow:none}.winners-table{font-size:10px}.winners-table td,.winners-table th{padding:10px}.page-heading h1{font-size:28px}}

/* Keep the initial ceremony within a standard laptop display. */
@media(min-width:1101px) and (max-height:800px){
  .stage-intro{margin-top:7px}.stage-intro h2{line-height:1.05}.stage-intro p{font-size:15px;line-height:1.4}
  .slot-box{height:108px}.ticket-eyebrow{margin-bottom:7px}.preview .winner-name{margin-top:9px;font-size:18px}
  .draw-stage{padding-bottom:12px}.select-wrap select,.gold-button{height:46px;min-height:46px}.site-footer{padding-top:5px;padding-bottom:7px}
}
@media(max-width:520px){
  .header-inner{gap:8px 9px}.hospital-brand{width:100px}.brand-divider{display:none}.event-brand-name{font-size:18px}.event-brand-top{font-size:5.2px}.help-button{margin-left:auto}
  .hero-ganesh-banner{width:105%;margin:0}.idol-halo{width:100%}
}
@media(max-width:360px){
  .hospital-brand{width:84px}.event-brand-name{font-size:16px}.event-brand-top{font-size:4.5px;letter-spacing:.5px}.header-inner{gap:8px}
}
@media(max-width:800px){
  body::before{background-image:url("../images/ceremony-temple-background.6e522c3b106d.png"),radial-gradient(ellipse at 50% 20%,#fff 20%,#fbf7ed 65%,#efdab0)}
}
@media(max-width:520px){
  .site-header{min-height:0}.header-inner{display:grid;grid-template-columns:100px minmax(0,1fr) 24px;gap:8px}
  .event-brand{min-width:0}.brand-star{display:none}.help-button{margin:0}.main-nav{grid-column:1/-1}
}
@media(max-width:360px){
  .header-inner{grid-template-columns:84px minmax(0,1fr) 22px}
}

/* ====== Single-winner ceremony: slot-style reels ====== */
.draw-stage.is-ceremony .stage-intro,.draw-stage.is-ceremony .draw-prize-summary{display:none}
.ceremony-card{--gold-deep:#8c5a12;--gold-mid:#c08a32;--gold-soft:#e8c26a;padding-top:14px}
.ceremony-header{display:grid;place-items:center;min-height:clamp(78px,6.2vw,108px)}
.ceremony-header>*{grid-area:1/1;transition:opacity .7s cubic-bezier(.2,.8,.2,1),translate .7s cubic-bezier(.2,.8,.2,1),scale .8s cubic-bezier(.2,.9,.25,1.2)}
.ceremony-title{display:flex;flex-direction:column;align-items:center;gap:4px}
.ceremony-rank{display:flex;align-items:center;gap:14px;color:#b37423;font-size:11px;font-weight:700;letter-spacing:4px;text-transform:uppercase}
.ceremony-rank::before,.ceremony-rank::after{content:"";width:48px;height:1px;background:linear-gradient(90deg,transparent,#d6b27a)}
.ceremony-rank::after{transform:rotate(180deg)}
.ceremony-prize-name{font-family:var(--serif);font-size:clamp(36px,3.1vw,58px);line-height:1.05;letter-spacing:-1px;color:#1e1b18}
.ceremony-winner{opacity:0;scale:.86;display:flex;align-items:center;gap:22px}
.ceremony-winner::before,.ceremony-winner::after{content:"✦";color:var(--gold-mid);font-size:clamp(16px,1.3vw,24px)}
.ceremony-winner-text{font-family:var(--serif);font-size:clamp(40px,3.5vw,66px);line-height:1.05;letter-spacing:.22em;margin-right:-.22em;text-transform:uppercase;background:linear-gradient(180deg,#d9a441 10%,#9a6512 60%,#c48a2c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 12px #e6b95a55)}
.show-winner .ceremony-title{opacity:0;translate:0 -12px}
.show-winner .ceremony-winner{opacity:1;scale:1}
.ceremony-status{margin:6px 0 12px;opacity:0;transition:opacity .5s}
.is-drawing .ceremony-status,.show-winner .ceremony-status{opacity:1}
.ceremony-dots{display:none;gap:4px;margin-left:-8px}
.is-drawing .ceremony-dots{display:inline-flex}
.ceremony-dots i{width:4px;height:4px;border-radius:50%;background:#c0852a;animation:dot-pulse 1.2s ease-in-out infinite}
.ceremony-dots i:nth-child(2){animation-delay:.2s}.ceremony-dots i:nth-child(3){animation-delay:.4s}

/* The reel plate: the whole number panel sits in a recessed gold frame. */
.reel-row{--plate-shadow:inset 0 2px 8px #93651f2b,inset 0 0 0 1px #fffaf0,0 14px 28px -18px #8a5a1a80;position:relative;max-width:860px;padding:clamp(8px,.85vw,14px);border:1px solid #e0bf83;border-radius:clamp(16px,1.4vw,24px);background:linear-gradient(180deg,#f8ecd2,#fffaf0 46%,#f5e3be);box-shadow:var(--plate-shadow);perspective:900px}
.reel-row::before,.reel-row::after{content:"";position:absolute;top:50%;translate:0 -50%;border:7px solid transparent;z-index:5;pointer-events:none}
.reel-row::before{left:-1px;border-left-color:var(--gold-mid)}
.reel-row::after{right:-1px;border-right-color:var(--gold-mid)}
.reel-sheen{position:absolute;inset:0;z-index:4;border-radius:inherit;overflow:hidden;pointer-events:none}
.reel-sheen::before{content:"";position:absolute;top:0;bottom:0;left:-35%;width:28%;background:linear-gradient(100deg,transparent,#fff7e2b0 50%,transparent);opacity:0}
.is-drawing .reel-sheen::before{opacity:1;animation:reel-sheen 2.6s cubic-bezier(.45,0,.35,1) infinite}
.reel-row.is-complete{animation:plate-glow 1.8s ease-out}
.show-winner .reel-row{border-color:#d4a24c}

.slot-box.reel{display:block;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.9,.25,1.25),border-color .5s,box-shadow .6s}
.slot-box.reel::after{display:none}
.reel-window{position:absolute;inset:0;overflow:hidden;border-radius:inherit;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 21%,#000 79%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 21%,#000 79%,transparent 100%);transition:opacity .7s,filter .7s}
.reel-strip{position:absolute;left:0;right:0;top:0;will-change:transform;filter:blur(calc(var(--blur,0) * 1.3px));text-shadow:0 calc(var(--blur,0) * .3em) 0 #b8894a3a,0 calc(var(--blur,0) * -.3em) 0 #b8894a3a}
.reel-cell{display:flex;align-items:center;justify-content:center;height:var(--cell,100%);line-height:1;transform:scaleY(calc(1 + var(--blur,0) * .12))}
.reel-glass{position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,#8a5a1a26,transparent 24%,transparent 76%,#8a5a1a26),linear-gradient(180deg,transparent 7%,#ffffffa8 10%,transparent 15%);box-shadow:inset 0 12px 14px -12px #7a4f1650,inset 0 -12px 14px -12px #7a4f1650}
.reel-glass::after{content:"";position:absolute;inset:-1px;border-radius:inherit;opacity:0;background:radial-gradient(ellipse at 50% 50%,#fff3c9 0,#f0cf7f88 38%,transparent 72%)}
.reel.is-idle .reel-window{opacity:.26;filter:blur(1px)}
.reel.is-locked .reel-window{-webkit-mask-image:linear-gradient(180deg,transparent 10%,#000 10.5%,#000 89.5%,transparent 90%);mask-image:linear-gradient(180deg,transparent 10%,#000 10.5%,#000 89.5%,transparent 90%)}
.reel.is-spinning{transform:rotateX(7deg) scale(.985);animation:reel-hum .16s ease-in-out infinite alternate,reel-glow 1.4s ease-in-out infinite;animation-delay:calc(var(--i,0) * -37ms),calc(var(--i,0) * -.23s)}
.reel.is-locked{transform:none;border-color:#b98224;box-shadow:0 5px 12px -6px #9a6a2075,inset 0 0 0 2px #fff4dc,0 0 18px #e2b95a4d}
.reel.is-locked .reel-cell,.slot-box.is-locked:not(.reel){background:linear-gradient(180deg,#cf9a3c 18%,#8c5a12 78%);-webkit-background-clip:text;background-clip:text;color:transparent}
.reel.is-locking{animation:reel-lock .65s cubic-bezier(.2,.9,.3,1.3)}
.reel.is-locking .reel-glass::after{animation:reel-flash .9s ease-out}

.ceremony-card .winner-name{display:flex;align-items:center;justify-content:center;gap:22px;min-height:clamp(46px,3.6vw,66px);margin-top:14px;font-family:var(--sans);font-weight:700;font-size:clamp(26px,2.2vw,42px);line-height:1.2;letter-spacing:0;color:#2b1d0e}
.ceremony-card .winner-name.is-waiting{font-family:var(--sans);font-style:italic;font-size:23px;color:#896844}
.ceremony-card .winner-name.is-waiting::before,.ceremony-card .winner-name.is-waiting::after{content:"✧";color:#b37722;font-style:normal;font-size:31px;line-height:1}
.winner-name.is-revealing{animation:name-in 1.1s cubic-bezier(.2,.8,.2,1) both}
.ceremony-award{display:inline-flex;align-items:center;gap:10px;margin-top:10px;padding:7px 20px 7px 16px;border:1px solid #e0bf83;border-radius:999px;background:linear-gradient(180deg,#fffaf0,#f7e6c1);box-shadow:0 4px 12px -8px #8a5a1a80,inset 0 1px 0 #fff;color:#7a5217;font-size:clamp(13px,1vw,17px);font-weight:700;letter-spacing:2.6px;text-transform:uppercase;opacity:0;translate:0 10px;transition:opacity .7s,translate .7s cubic-bezier(.2,.8,.2,1)}
.ceremony-award .icon{width:1.45em;height:1.45em;color:#b7771c;stroke-width:1.7}
.show-prize .ceremony-award{opacity:1;translate:0 0}
.ceremony-details{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 16px;min-height:38px;margin-top:4px;opacity:0;transition:opacity .6s}
.ceremony-details .ticket-raw{margin:0}
.show-details .ceremony-details{opacity:1}

.is-intro .ceremony-rank{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
.is-intro .ceremony-prize-name{animation:rise .9s .18s cubic-bezier(.2,.8,.2,1) both}
.is-intro .reel-row{animation:rise .9s .45s cubic-bezier(.2,.8,.2,1) both}

@keyframes rise{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
@keyframes dot-pulse{0%,100%{opacity:.25;scale:.8}50%{opacity:1;scale:1.15}}
@keyframes reel-hum{from{translate:0 -1px}to{translate:0 1px}}
@keyframes reel-sheen{from{transform:translateX(0)}to{transform:translateX(560%)}}
@keyframes reel-lock{0%{scale:1}35%{scale:1.075}100%{scale:1}}
@keyframes reel-flash{0%{opacity:0}18%{opacity:.95}100%{opacity:0}}
@keyframes plate-glow{0%{box-shadow:var(--plate-shadow),0 0 0 0 #e8c26a99}35%{box-shadow:var(--plate-shadow),0 0 0 8px #e8c26a40,0 0 46px #e8c26a90}100%{box-shadow:var(--plate-shadow),0 0 0 20px #e8c26a00,0 0 0 #e8c26a00}}
@keyframes name-in{from{opacity:0;letter-spacing:.22em;filter:blur(8px);translate:0 12px}to{opacity:1;letter-spacing:.01em;filter:blur(0);translate:0 0}}

@media(max-width:1399px){
  .reel-row{max-width:733px}.reel-row .slot-box{max-width:none}
  .ceremony-header{min-height:84px}.ceremony-prize-name{font-size:42px}.ceremony-winner-text{font-size:48px}.ceremony-card .winner-name{font-size:34px;min-height:50px}
}
@media(min-width:1101px) and (max-height:800px){
  .ceremony-card{padding-top:4px}.ceremony-header{min-height:70px}.ceremony-prize-name{font-size:36px}.ceremony-winner-text{font-size:42px}.ceremony-status{margin:2px 0 8px}
  .ceremony-card .winner-name{font-size:30px;min-height:42px;margin-top:9px}.ceremony-card .winner-name.is-waiting{font-size:19px}.ceremony-award{margin-top:6px;padding-top:5px;padding-bottom:5px}
}
@media(max-width:1100px){
  .ceremony-header{min-height:76px}.ceremony-prize-name{font-size:36px}.ceremony-winner-text{font-size:42px}.ceremony-card .winner-name{font-size:30px;min-height:44px}
}
@media(max-width:800px){
  .ceremony-rank{font-size:9px;letter-spacing:3px;gap:10px}.ceremony-rank::before,.ceremony-rank::after{width:30px}
  .ceremony-prize-name{font-size:32px}.ceremony-winner-text{font-size:36px}.ceremony-winner{gap:14px}
  .ceremony-card .winner-name{font-size:26px;min-height:38px}.ceremony-card .winner-name.is-waiting{font-size:18px;gap:13px}
  .ceremony-card .winner-name.is-waiting::before,.ceremony-card .winner-name.is-waiting::after{font-size:22px}
  .reel-row::before,.reel-row::after{border-width:5px}
}
@media(max-width:520px){
  .ceremony-card{padding-top:8px}.ceremony-header{min-height:62px}.ceremony-prize-name{font-size:27px;letter-spacing:-.6px}.ceremony-winner-text{font-size:28px;letter-spacing:.16em;margin-right:-.16em}
  .ceremony-status{margin:2px 0 8px}.reel-row{padding:6px;border-radius:13px}
  .ceremony-card .winner-name{font-size:22px;min-height:32px;margin-top:10px}.ceremony-card .winner-name.is-waiting{font-size:14px}
  .ceremony-award{font-size:11px;letter-spacing:1.6px;padding:5px 14px 5px 11px}
}
@media(max-width:360px){
  .ceremony-prize-name{font-size:23px}.ceremony-winner-text{font-size:24px}.ceremony-card .winner-name{font-size:19px}.ceremony-card .winner-name.is-waiting{font-size:12px}
}

/* ====== Batch ceremony: one ticket slot per winner (Watches ×5, Consolation ×10) ====== */
.ceremony-round{margin-top:3px;color:#9a7a4c;font-size:11px;font-weight:700;letter-spacing:2.6px;text-transform:uppercase}
.ceremony-progress{min-height:1.5em;margin-top:6px;color:#8b7555;font-size:12px;letter-spacing:.4px;opacity:0;transition:opacity .6s}
.show-prize .ceremony-progress{opacity:1}
.ceremony-card.is-batch{--batch-gap:clamp(8px,.8vw,14px);--batch-cols:5}
.batch-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--batch-gap);max-width:1500px;margin:0 auto}
.ceremony-ticket.is-slot{flex:0 1 calc((100% - (var(--batch-cols) - 1) * var(--batch-gap)) / var(--batch-cols));min-width:0;padding:10px 10px 4px;border:1px solid #e4d0ac;border-radius:16px;background:linear-gradient(180deg,#fffdf8,#fff7e8);box-shadow:0 6px 16px -12px #8a5a1a80;transition:border-color .6s,box-shadow .6s}
.show-winner .ceremony-ticket.is-slot{border-color:#d9b06a;box-shadow:0 8px 22px -14px #9a6a2099,inset 0 0 0 1px #fff6de}
.ceremony-ticket-index{display:block;margin-bottom:6px;color:#b37423;font-size:9px;font-weight:700;letter-spacing:2.4px;text-transform:uppercase}
.is-batch .reel-row{max-width:none;gap:4px;padding:5px;border-radius:12px}
.is-batch .reel-row::before,.is-batch .reel-row::after{border-width:4px}
.ceremony-card.is-batch .slot-box{height:clamp(56px,4.4vw,84px);max-width:none;font-size:clamp(34px,2.9vw,56px);border-radius:8px}
.is-batch .reel-strip{filter:none}
.is-batch .reel-glass{box-shadow:inset 0 8px 10px -8px #7a4f1650,inset 0 -8px 10px -8px #7a4f1650}
.ceremony-card.is-batch .winner-name{min-height:2.5em;margin-top:8px;font-size:clamp(15px,1.15vw,20px);line-height:1.25}
.ceremony-card.is-batch .winner-name.is-waiting{font-size:13px}
.ceremony-card.is-batch .winner-name.is-waiting::before,.ceremony-card.is-batch .winner-name.is-waiting::after{content:none}
.is-batch .ceremony-details{min-height:30px;gap:0 10px;margin-top:2px}
.is-batch .ceremony-details .ticket-raw,.is-batch .handover-control{font-size:11px}
.is-batch .handover-control{margin:4px 0}
.is-batch .ceremony-award{margin-top:12px}
@media(max-width:1100px){.ceremony-card.is-batch{--batch-cols:3}}
@media(max-width:640px){
  .ceremony-card.is-batch{--batch-cols:2}
  .ceremony-card.is-batch .slot-box{height:48px;font-size:30px;border-radius:6px}
  .is-batch .reel-row{gap:3px;padding:4px}
}

/* ====== Separate pages: /welcome, /draw, /winners, /prizes ====== */
/* Everything below scales with the viewport so the same pages work on a
   laptop and on the large public display. */
.nav-button{text-decoration:none}
.page-welcome .main-shell,.page-draw .main-shell{display:flex;flex-direction:column;min-height:calc(100svh - var(--header-height))}

/* Welcome: the audience-facing ceremony screen. Ganesha is the focus. */
.welcome-page{flex:1;overflow-x:clip;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(6px,1.4svh,30px);padding-top:clamp(6px,1.5svh,36px);text-align:center}
.welcome-idol{position:relative;display:flex;justify-content:center;align-items:flex-end}
.welcome-idol .idol-halo{left:50%;top:0;width:118%;height:104%}
.welcome-idol img{position:relative;z-index:1;height:clamp(200px,44svh,1400px);width:auto;max-width:92vw;object-fit:contain;filter:drop-shadow(0 8px 16px #7150111f)}
.welcome-copy{display:flex;flex-direction:column;align-items:center;gap:clamp(4px,1svh,22px)}
.welcome-eyebrow{justify-content:center;font-size:clamp(10px,1.25vmin,30px);letter-spacing:.32em}
.welcome-eyebrow .small-rule{width:clamp(24px,4vmin,110px)}
.welcome-page h1{font-size:clamp(38px,6.4vmin,176px);line-height:1.04;letter-spacing:-.02em;color:#1e1b18}
.welcome-page h1 em{font-style:normal;color:#b37d2e}
.welcome-blessing{font-size:clamp(16px,2.3vmin,60px);line-height:1.35;color:#7d6a57;max-width:34ch}
.welcome-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:clamp(18px,4vw,150px);padding:clamp(4px,1svh,24px) 0 clamp(4px,1svh,20px)}
.welcome-features{display:flex;gap:clamp(18px,3.4vw,110px)}
.welcome-features .feature-item{font-size:clamp(9px,1.2vmin,28px);letter-spacing:.14em;gap:clamp(6px,1svh,18px)}
.welcome-features .feature-icon{width:clamp(44px,5.6vmin,140px);height:clamp(44px,5.6vmin,140px)}
.welcome-features .feature-icon .icon{width:55%;height:55%}
.welcome-stats{display:flex;gap:clamp(18px,3.2vw,110px);padding-left:clamp(18px,4vw,150px);border-left:1px solid #dcc193}
.welcome-stat{display:flex;flex-direction:column;align-items:center}
.welcome-stat .stat-value{font-size:clamp(22px,3.6vmin,96px)}
.welcome-stat .stat-label{font-size:clamp(11px,1.3vmin,32px)}
@media(max-width:800px){.welcome-stats{border-left:0;padding-left:0}.welcome-footer{gap:14px}}

/* Lucky draw: the stage fills the viewport; the tickets are the focus. */
.draw-page{flex:1;display:flex;flex-direction:column;padding-top:clamp(8px,1.4svh,28px)}
.page-draw .draw-stage{flex:1;display:flex;flex-direction:column;min-height:0}
.page-draw .winners-grid{flex:1;display:flex;flex-direction:column;justify-content:center;margin:0;width:100%}
.page-draw .stage-intro h2{font-size:clamp(30px,min(3.4vw,6.4svh),112px)}
.page-draw .stage-intro p{font-size:clamp(14px,min(1.3vw,2.4svh),40px)}
.page-draw .draw-prize-summary{font-size:clamp(11px,min(1vw,1.9svh),30px)}
.page-draw .draw-prize-summary strong{font-size:1.35em}
.page-draw #selected-prize-count{font-size:1.1em}
.page-draw .ceremony-prize-name{font-size:clamp(34px,min(4vw,7svh),130px)}
.page-draw .ceremony-winner-text{font-size:clamp(40px,min(4.6vw,8svh),150px)}
.page-draw .ceremony-rank,.page-draw .ceremony-round{font-size:clamp(10px,min(.9vw,1.7svh),28px)}
.page-draw .ceremony-header{min-height:clamp(70px,13svh,340px)}
.page-draw .ceremony-award{font-size:clamp(13px,min(1.2vw,2.2svh),38px)}
.page-draw .ceremony-progress{font-size:clamp(12px,min(1vw,1.9svh),30px)}
.page-draw .ceremony-card:not(.is-batch) .reel-row{max-width:min(94%,150svh,1800px)}
.page-draw .ceremony-card:not(.is-batch) .slot-box{max-width:none;height:clamp(64px,min(12vw,25svh),400px);font-size:clamp(40px,min(7.8vw,16.5svh),260px)}
.page-draw .ceremony-card:not(.is-batch) .winner-name{font-size:clamp(26px,min(3.2vw,5.8svh),110px);min-height:1.35em}
.page-draw .ceremony-card:not(.is-batch) .winner-name.is-waiting{font-size:clamp(17px,min(1.7vw,3svh),52px)}
/* Batches: each ticket sizes its digits from its own width. Five tickets
   sit 3 + 2 so the digits stay large; ten sit 5 + 5. */
.ceremony-ticket.is-slot{container-type:inline-size}
.page-draw .ceremony-card.is-five{--batch-cols:3}
.page-draw .batch-grid{max-width:min(100%,190svh)}
.page-draw .main-shell{width:96%}
.page-draw .draw-stage{padding-left:2.4%;padding-right:2.4%}
.page-draw .ceremony-card.is-batch .slot-box{height:clamp(46px,min(26cqi,9.5svh),260px);font-size:clamp(28px,min(19cqi,6.8svh),170px)}
.page-draw .ceremony-card.is-five .slot-box{height:clamp(50px,min(26cqi,10.5svh),300px);font-size:clamp(30px,min(19cqi,7.6svh),200px)}
.page-draw .ceremony-card.is-five .winner-name{min-height:1.3em}
.page-draw .ceremony-card.is-batch .ceremony-header{min-height:clamp(64px,9svh,260px)}
.page-draw .ceremony-card.is-batch .winner-name{font-size:clamp(14px,min(6cqi,2.6svh),48px);margin-top:clamp(4px,.7svh,14px)}
.page-draw .ceremony-card.is-batch .winner-name.is-waiting{font-size:clamp(12px,min(4.5cqi,2.2svh),32px)}
.page-draw .ceremony-ticket-index{font-size:clamp(9px,min(3.2cqi,1.5svh),24px)}
@media(max-width:1100px){.page-draw .ceremony-card.is-batch{--batch-cols:3}}
@media(max-width:640px){.page-draw .ceremony-card.is-batch{--batch-cols:2}}

/* Idle draw page: the next round's tickets as placeholders. */
.is-preview .ceremony-header{display:none}
.is-preview .ceremony-status{opacity:1}
.is-preview .reel .reel-window{opacity:0}
.is-preview .reel-glass::before{content:"";position:absolute;left:24%;right:24%;top:50%;height:max(3px,5%);translate:0 -50%;background:#b29357;box-shadow:0 1px 0 #ffffffa0}

/* Winners: latest draw up front, register in large rows. */
.latest-draw{margin-top:clamp(18px,2.4svh,40px);padding:clamp(16px,1.8vw,40px);border:1px solid #e0bf83;border-radius:var(--radius-lg);background:linear-gradient(180deg,#fffdf8,#fff5e2);box-shadow:var(--shadow)}
.latest-draw h2{font-size:clamp(24px,2.3vw,60px);line-height:1.2;margin-top:8px}
.latest-draw-list{display:flex;flex-wrap:wrap;gap:clamp(10px,1vw,24px);margin-top:clamp(12px,1.6svh,28px)}
.latest-card{flex:1 1 clamp(150px,16%,360px);max-width:400px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:clamp(10px,1.2vw,24px);border:1px solid #e4d0ac;border-radius:16px;background:#fffdf8}
.latest-ticket{font-weight:700;font-size:clamp(28px,2.7vw,72px);line-height:1.1;letter-spacing:.1em;font-variant-numeric:tabular-nums;background:linear-gradient(180deg,#cf9a3c 18%,#8c5a12 78%);-webkit-background-clip:text;background-clip:text;color:transparent}
.latest-name{font-size:clamp(14px,1.1vw,28px);color:#3a2a18;text-align:center;overflow-wrap:anywhere}
.page-winners .winners-table{font-size:clamp(14px,.95vw,24px)}
.page-winners .winner-ticket{font-size:1.3em;font-weight:700;letter-spacing:.08em;font-variant-numeric:tabular-nums;color:#8c5a12}
.winner-drawn{white-space:nowrap;color:#8b7555}

/* Prize gallery: informational tiles, no draw controls. */
.gallery-card-total{font-family:var(--serif);font-size:clamp(22px,1.8vw,46px)!important;color:#8c5a12!important;margin-top:4px}
.page-prizes .gallery-card-body h3{font-size:clamp(20px,1.6vw,42px)}
.winner-whatsapp{white-space:nowrap}
.winner-whatsapp .whatsapp-mobile{display:block;margin-top:3px;font-size:.8em;color:#8b7555;font-variant-numeric:tabular-nums}
.winner-whatsapp .whatsapp-send{margin-left:8px}
