:root{color-scheme:dark;--gold:#e8c985;--muted:#9299aa;--line:#ffffff15}*{box-sizing:border-box}body{margin:0;background:#080e1c;color:#f5f1e9;font-family:Arial,sans-serif}button,.button,input,textarea{font:inherit}button,.button{border:1px solid #ffffff26;background:#ffffff05;color:#eee;border-radius:8px;padding:11px 16px;cursor:pointer;display:inline-block}button:hover,.button:hover{border-color:var(--gold)}button:disabled{opacity:.45;cursor:wait}.gold{background:linear-gradient(120deg,#ecd4a0,#c99f56);color:#191b24;border:0;font-weight:bold}.ambient{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 10%,#34507828,transparent 65%);pointer-events:none}header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:25px 4vw;border-bottom:1px solid var(--line);gap:20px}.brand{color:var(--gold);text-decoration:none;font-size:26px}.brand span{font-size:10px;letter-spacing:3px;margin-left:10px}header button{font-size:12px;margin-left:7px}main{position:relative}.stage{text-align:center;max-width:1100px;margin:auto;padding:48px 30px 25px}.eyebrow{font-size:10px;letter-spacing:4px;color:var(--gold)}h1{font:normal clamp(38px,5vw,70px) Georgia,serif;margin:16px 0}h2{font:normal 29px Georgia,serif;margin:12px 0}.subtitle{color:#aeb4c1;font:17px Georgia,serif}.prize-label{font-size:9px;letter-spacing:3px;color:var(--muted);margin-top:32px}#prizeDisplay{font:24px Georgia,serif;color:var(--gold);margin:10px 0 23px}.draw-card{position:relative;border:1px solid #c9a9655c;border-radius:16px;padding:26px 20px;background:linear-gradient(120deg,#1c263b8a,#101627);box-shadow:0 20px 80px #0005,inset 0 0 50px #e8c98504;min-height:245px}.draw-card:before,.draw-card:after{content:'✧';position:absolute;color:var(--gold);top:20px;font-size:23px}.draw-card:before{left:24px}.draw-card:after{right:24px}#status{font-size:10px;text-transform:uppercase;letter-spacing:3px;color:var(--gold)}#number{font:normal clamp(60px,8vw,110px) Georgia,serif;color:var(--gold);line-height:1.1;margin:12px 0}#winner{font:normal clamp(23px,3.6vw,48px) Georgia,serif;overflow-wrap:anywhere}#caption{font-size:12px;color:var(--muted);margin-top:18px}.stage-actions{margin:24px 0;min-height:47px}#draw{padding:17px 40px;font-size:16px}.stage-footer{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:var(--muted)}.admin{max-width:1100px;margin:35px auto 60px;padding:30px;border-top:1px solid var(--line)}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:25px 0}.stats div{padding:18px;background:#ffffff04;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:12px}.stats b{display:block;font:30px Georgia,serif;color:var(--gold);margin-bottom:8px}nav{display:flex;border-bottom:1px solid var(--line);gap:8px;margin-bottom:20px}nav button{border:0;border-radius:0;padding:15px}nav .active{color:var(--gold);border-bottom:2px solid var(--gold)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0}input:not([type=checkbox]),textarea{background:#111b2e;border:1px solid #ffffff24;border-radius:7px;padding:12px;color:white;max-width:100%}textarea{display:block;width:100%;height:130px;margin:12px 0}details{margin:22px 0;color:var(--muted);font-size:13px}summary{cursor:pointer;color:var(--gold)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}td,th{padding:13px;border-bottom:1px solid var(--line)}input[type=checkbox]{accent-color:var(--gold);width:17px;height:17px}.table-wrap{overflow:auto}.muted{color:var(--muted);font-size:12px}label{display:block;margin:14px 0}label.button{margin:0}.danger{color:#f6a5a5}.entry{display:flex;align-items:center;justify-content:space-between;padding:18px;margin:10px 0;background:#ffffff04;border:1px solid var(--line);border-radius:9px;gap:12px}.entry small{color:var(--muted)}footer{text-align:center;color:var(--muted);font:14px Georgia,serif;padding:25px;border-top:1px solid var(--line)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#e8c985;color:#111827;padding:15px 25px;border-radius:9px;z-index:10;display:none;max-width:90vw}#review{color:var(--gold);line-height:1.7;font-size:13px}.spinning{animation:pulse .8s infinite}.revealed{animation:reveal 1s ease-out;box-shadow:0 0 90px #e8c98520}#confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:8}.particle{position:absolute;top:-30px;width:7px;height:15px;animation:fall 4s ease-in forwards}.projector header,.projector .admin,.projector footer,.projector .stage-actions{display:none}.projector .stage{max-width:1400px;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.projector h1{font-size:clamp(45px,6vw,95px)}.projector #winner{font-size:clamp(38px,5vw,85px)}.projector #number{font-size:clamp(100px,13vw,190px)}.projector .draw-card{padding:40px;min-height:350px}.projector .stage-footer{margin-top:25px}.projector #caption{font-size:20px}@keyframes pulse{50%{border-color:#ffe6a8;box-shadow:0 0 40px #e8c98518}}@keyframes reveal{from{transform:scale(.93);opacity:.2}to{transform:scale(1);opacity:1}}@keyframes fall{to{transform:translateY(110vh) rotate(700deg);opacity:0}}@media(max-width:700px){header{flex-wrap:wrap;padding:18px}.brand span{letter-spacing:1px}header button{padding:8px}.stage{padding:30px 16px}.admin{padding:20px 16px}.admin-heading{display:block}.stats{gap:7px}.stats div{padding:12px 8px;font-size:10px}nav{overflow:auto}nav button{font-size:12px}.entry{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important}}
/* Wedding presentation */
:root{color-scheme:light;--gold:#99713a;--muted:#857b6c;--line:#b89b6533}html{scroll-behavior:smooth}body{background:#f5f0e7;color:#39372f}.ambient{background:radial-gradient(ellipse at 50% 20%,#fffdf9 0%,#f4eee36b 65%,#e8dfcc55 100%)}header{background:#fffaf280;border-bottom:1px solid #bc9a6040;padding:18px 4vw}.brand{color:#99713a;font-size:24px}.brand span{font-size:9px;letter-spacing:2px}button,.button{background:#fffdf8;color:#5a4c35;border-color:#c6ad7e70;box-shadow:0 3px 8px #6b522a08;transition:transform .2s,box-shadow .2s}button:hover,.button:hover{transform:translateY(-2px);box-shadow:0 6px 18px #6b522a15}.gold{background:linear-gradient(110deg,#f1e0be,#d8b87b);color:#4c381b;border:1px solid #ba9555;box-shadow:0 5px 15px #90724422}.stage{max-width:1180px;margin:30px auto;padding:32px 75px 24px;background:#fffdf7d9;border:1px solid #d1b783;outline:1px solid #dfd0b3;outline-offset:-9px;box-shadow:0 20px 55px #76613a15;position:relative;overflow:hidden}.stage:before,.stage:after{content:'';position:absolute;width:230px;height:260px;background:url(botanical.svg) center/contain no-repeat;pointer-events:none;z-index:0;opacity:.7}.stage:before{left:-23px;top:-20px;transform:rotate(180deg)}.stage:after{right:-15px;bottom:-22px}.stage>*{position:relative;z-index:1}.monogram{font:24px Georgia,serif;letter-spacing:5px;color:#635744;margin-bottom:18px}.monogram span{color:#b68b45;font-style:italic}.eyebrow{color:#8c713f;letter-spacing:3px;font-size:9px}h1{font:italic normal clamp(42px,5vw,72px) Georgia,serif;margin:13px 0;color:#3f3c32}.subtitle{color:#81745f;font:italic 17px Georgia,serif;margin:10px 0}.ornament{color:#ba9255;display:flex;gap:16px;align-items:center;justify-content:center;margin:22px auto 0;width:160px}.ornament:before,.ornament:after{content:'';height:1px;background:linear-gradient(90deg,transparent,#c7a768);width:60px}.ornament:after{transform:rotate(180deg)}.prize-label{margin-top:17px;color:#8c7b60;letter-spacing:2.5px}#prizeDisplay{margin:10px 0 20px;color:#745627;font:25px Georgia,serif}.draw-card{border:1px solid #c5a46a;background:radial-gradient(ellipse at center,#fffefa,#f2eadb);border-radius:4px;box-shadow:0 12px 35px #92764612,inset 0 0 0 7px #fffaf3;min-height:250px;padding:25px 35px}.draw-card:before,.draw-card:after{color:#b78b46;font-size:23px}#status{color:#86632f;letter-spacing:2px}.number-label{font-size:8px;letter-spacing:3px;color:#9a8a6d;margin-top:16px}#number{color:#ad8544;text-shadow:0 2px 0 #fff6de;font-size:clamp(68px,8vw,112px);margin:5px 0}#winner{color:#3c4034}#caption{color:#8c7c64}.live-dot{font-size:8px;color:#978264;letter-spacing:2px;margin-bottom:13px}.stage-actions{margin:20px 0}#draw{border-radius:30px;padding:16px 44px}#resolution button{border-radius:25px;margin:4px}.stage-footer{color:#8b806b;letter-spacing:1px;border-top:1px solid #cbb48540;padding-top:15px;font-size:9px}.admin{background:#fffdf8;border:1px solid #d5c3a2;border-radius:14px;margin:55px auto 40px;padding:28px;box-shadow:0 12px 30px #806b3e09;scroll-margin-top:20px}.workflow{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:27px;font-size:11px;color:#8a7654}.admin-heading h2{color:#494739;font-size:28px}.stats div{background:#f8f3ea;border-color:#ddcbaa;color:#8a7b62}.stats b{color:#8c6934}nav{background:#f6f0e5;border-radius:8px;border:0;padding:4px}nav button{flex:1;border-radius:6px;box-shadow:none}nav .active{background:#fffdf7;border:1px solid #ceae77;color:#765322;box-shadow:0 2px 8px #82663812}.panel{padding-top:5px}input:not([type=checkbox]),textarea{background:#fffdf9;border-color:#d6c19b;color:#494332}input::placeholder,textarea::placeholder{color:#a39379}input[type=checkbox]{accent-color:#987337}.entry{background:#faf6ed;border-color:#e1d1b5}.danger{color:#a34f40}td,th{border-color:#e9deca}th{background:#f9f4ea}tbody tr:hover{background:#fcf8ef}details{background:#faf6ed;border:1px solid #e8dbc0;border-radius:8px;padding:15px}summary{color:#7a623c}footer{color:#8a7a60}#toast{background:#e8d2a7;color:#47341c}.spinning{animation:goldPulse .8s infinite}.revealed{animation:weddingReveal 1.1s ease-out;box-shadow:0 0 55px #c29c5045;border-color:#b18639}.projector .stage{margin:0;max-width:none;min-height:100vh;padding:35px 9vw;outline-offset:-16px}.projector .stage:before,.projector .stage:after{width:320px;height:350px;opacity:.6}.projector .monogram{font-size:28px;margin-bottom:12px}.projector .draw-card{min-height:320px;padding:25px}.projector .subtitle{font-size:22px}.projector #prizeDisplay{font-size:32px}.projector h1{font-size:clamp(45px,5vw,78px)}.projector #number{font-size:clamp(90px,10vw,155px)}.projector #winner{font-size:clamp(38px,4.5vw,72px)}.projector #status{font-size:15px}.projector #caption{font-size:19px}.projector .stage-footer{font-size:13px}.projector .number-label{font-size:11px}@keyframes goldPulse{50%{box-shadow:0 0 35px #cba86c38;border-color:#ae813a}}@keyframes weddingReveal{0%{transform:scale(.95);opacity:.2;filter:blur(8px)}100%{transform:scale(1);opacity:1;filter:blur(0)}}@media(max-width:700px){.stage{margin:15px 12px;padding:28px 18px 20px}.stage:before,.stage:after{width:115px;height:150px;opacity:.4}.monogram{font-size:20px}h1{font-size:40px}.draw-card{padding:25px 15px}#status{font-size:9px}#winner{font-size:27px}.admin{margin:30px 12px;padding:18px}.workflow{flex-direction:column;gap:10px}.admin-heading h2{font-size:25px}nav button{padding:12px 8px;white-space:nowrap}header{justify-content:center}.brand span{font-size:8px}header>div{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}header button{margin:0}.stage-footer{gap:10px;font-size:8px}}
.admin{display:none}.view-admin .admin{display:block;margin-top:28px}.view-admin .stage{display:none}.view-admin #stageView{background:#ead8b5}.view-admin #organize{display:none}.prepare-link{display:block;margin:0 auto 15px;border:0;box-shadow:none;background:none;color:#81693d;font-size:12px;text-decoration:underline}.projector .admin,.projector .prepare-link{display:none!important}.demo-notice{background:#fff2d5;border:1px solid #d5b274;padding:15px;border-radius:8px;font-size:12px;line-height:1.6;margin:18px 0;color:#805c25}.gifts-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.gifts-heading h2{margin:0}.gift-summary{font-size:12px;color:#81683e;padding:12px 15px;background:#f6efdf;border-radius:20px}.gift-form{display:grid;grid-template-columns:1fr 110px auto;align-items:end;gap:15px;background:#faf5ea;padding:18px;border:1px solid #e3d3b4;border-radius:10px;margin:22px 0}.gift-form label{margin:0;font-size:11px;color:#8c7654}.gift-form input{display:block;margin-top:8px;width:100%}.gift-form button{height:43px}.gift-section{font:22px Georgia,serif;margin:27px 0 15px}.gift-section span{font:12px Arial,sans-serif;background:#eddfc4;border-radius:20px;padding:5px 9px;margin-left:7px}.gift-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gift-card{border:1px solid #dbc8a4;border-radius:12px;padding:20px;background:#fffdf8;min-width:0}.gift-card.selected{border-color:#b3863d;background:#fbf4e5;box-shadow:0 4px 18px #b4904c12}.gift-top{display:flex;justify-content:space-between;align-items:center}.gift-icon{font-size:28px;color:#b18a49}.badge{font-size:8px;letter-spacing:1px;background:#f1e7d3;color:#927039;padding:7px 9px;border-radius:20px}.gift-card h4{font:23px Georgia,serif;margin:15px 0 10px;overflow-wrap:anywhere}.gift-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.gift-actions button{font-size:11px;padding:9px 12px}#historyList .entry{align-items:center}.stage{min-height:calc(100vh - 140px);display:flex;flex-direction:column;justify-content:center}.stage .stage-footer{margin-top:auto}.projector .stage{min-height:100vh}@media(max-width:700px){.gift-form{grid-template-columns:1fr 90px}.gift-form button{grid-column:1/-1}.gift-grid{grid-template-columns:1fr}.gifts-heading{display:block}.gift-summary{margin-top:15px;display:inline-block}.stage{min-height:unset}.stage .stage-footer{margin-top:10px}}
.gift-table{font-size:14px;margin-top:22px}.gift-table th{padding:14px 16px;font-size:10px;letter-spacing:.6px;white-space:nowrap}.gift-table td{padding:18px 16px;vertical-align:middle}.gift-table td:first-child{min-width:190px}.gift-table td:nth-child(2),.gift-table td:nth-child(3),.gift-table td:nth-child(4){font-size:18px;font-family:Georgia,serif;text-align:center}.gift-table th:nth-child(2),.gift-table th:nth-child(3),.gift-table th:nth-child(4){text-align:center}.gift-table td:last-child{min-width:280px}.row-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.row-actions button{font-size:11px;padding:9px 11px}.next-gift{background:#faf1df}.next-label{display:block;color:#9a743a;font-size:10px;margin-top:7px}.complete-label{color:#62724b;font-size:11px}.gift-note{color:#897454;font-size:12px;padding:14px 0}.empty-gifts{color:#97896f;padding:35px!important;text-align:center}.admin{max-width:1200px}.workflow{padding-bottom:12px;margin-bottom:20px}.stats{margin:20px 0}.stats div{padding:14px 18px}.stats b{font-size:27px}.demo-notice{padding:10px 14px;margin:16px 0;font-size:11px}.gifts-heading h2{font-size:27px}.gift-form{grid-template-columns:minmax(220px,1fr) 120px auto}.gift-summary{white-space:nowrap}body.view-admin footer{padding:15px}@media(max-width:700px){.gift-form{grid-template-columns:1fr 85px}.gift-form button{grid-column:1/-1}.gift-table td,.gift-table th{padding:12px}.gift-summary{font-size:11px}.admin-heading h2{font-size:25px}}
.event-heading{margin:10px 0 16px}.event-heading h1{font-style:normal;font-size:clamp(32px,4vw,60px);margin:10px 0;overflow-wrap:anywhere}.event-heading button{font-size:11px;border:0;box-shadow:none;background:none;padding:4px;color:#9b7c48}.projector #editTitle{display:none}.projector .event-heading h1{font-size:clamp(40px,5vw,76px)}.gift-name-edit{width:100%;min-width:170px;font-size:13px}.gift-quantity-edit{width:76px;text-align:center;font-size:15px}.gift-table td:last-child{min-width:230px}.gift-table td{padding:12px}.row-actions button{font-size:10px;padding:9px}.gift-table th{letter-spacing:0}.stage #resolution button{min-width:190px;font-size:17px;padding:15px 30px}
.stage-tools{display:flex;justify-content:center;margin:6px 0 15px}.stage-tools button{padding:8px 16px;font-size:11px;box-shadow:none}.projector .stage-tools{display:none}dialog{border:1px solid #c4a064;border-radius:14px;background:#fffcf5;color:#49402f;padding:28px;max-width:470px;width:calc(100% - 32px);box-shadow:0 25px 100px #30200040}dialog::backdrop{background:#30271688;backdrop-filter:blur(4px)}dialog h2{font-size:28px}dialog p{line-height:1.6;font-size:14px}dialog .toolbar{justify-content:flex-end;margin-top:23px}#confirmClear{background:#a04e40;color:#fff;border-color:#a04e40}.event-heading{margin-bottom:0}
[hidden]{display:none!important}.draw-progress{width:min(100%,720px);margin:8px auto 22px;text-align:left;padding:15px 20px;background:#f8f1e4;border:1px solid #dfcba6;border-radius:10px}.progress-heading{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#7d6236;margin-bottom:10px}.progress-heading strong{font-weight:500}.progress-counts{display:flex;justify-content:space-between;gap:15px;color:#887656;font-size:11px;margin-top:10px}.progress-counts b{color:#70552a;font-size:15px;margin-right:4px}progress{display:block;width:100%;height:7px;border:0;border-radius:10px;overflow:hidden;background:#e8dcc5;accent-color:#b58b45}progress::-webkit-progress-bar{background:#e8dcc5;border-radius:10px}progress::-webkit-progress-value{background:linear-gradient(90deg,#d8b875,#a97b37);border-radius:10px;transition:width .6s}progress::-moz-progress-bar{background:#b58b45}.projector .draw-progress{width:80%;max-width:1000px;margin:20px auto}.projector .progress-heading{font-size:19px}.projector .progress-counts{font-size:17px}.projector .progress-counts b{font-size:23px}.projector progress{height:10px}@media(max-width:700px){.draw-progress{padding:12px}.progress-counts{gap:6px;font-size:9px}.progress-heading{font-size:11px}.progress-counts b{font-size:13px}}
.gift-silhouette{color:#ba965a;margin:15px auto 20px;opacity:.8;line-height:0}.draw-progress,.projector .draw-progress{background:none;border:0;border-radius:0;padding:0;width:min(100%,560px);max-width:560px;margin:15px auto 20px;text-align:center}.compact-progress{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;color:#9a8c75;font-size:10px;line-height:1.6;font-family:Arial,sans-serif}.compact-progress b{font-weight:500;color:inherit}.progress-divider{opacity:.5}.draw-progress progress,.projector .draw-progress progress{height:2px;opacity:.55;margin-top:9px}.projector .compact-progress{font-size:13px;gap:12px}.projector .gift-silhouette{margin:10px auto 18px}.projector .gift-silhouette svg{width:58px;height:58px}.stage .ornament{margin-top:12px}
.final-winners{margin:10px auto 30px;width:min(100%,900px);text-align:left}.final-winners h2{text-align:center;font-size:26px;color:#755b31;margin:10px 0 22px}#finalWinnerList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.final-winner{display:flex;align-items:center;gap:15px;background:#fffaf0;border:1px solid #dac7a1;border-radius:8px;padding:15px 18px;min-width:0}.winner-number{font:26px Georgia,serif;color:#ae8747;min-width:45px}.final-winner strong{display:block;color:#484839;font:20px Georgia,serif;overflow-wrap:anywhere}.final-winner div>span{display:block;font-size:11px;color:#8d7958;margin-top:6px}.projector .final-winners{width:100%;max-width:1100px}.projector .final-winner strong{font-size:26px}.projector .final-winner div>span{font-size:15px}.projector .winner-number{font-size:34px}@media(max-width:700px){#finalWinnerList{grid-template-columns:1fr}.final-winner strong{font-size:19px}}
.manual-form{display:grid;grid-template-columns:minmax(180px,1fr) 130px;gap:14px;margin-top:18px}.manual-form label{margin:0;font-size:12px}.manual-form input:not([type=checkbox]){display:block;width:100%;margin-top:7px}.manual-presence{display:flex;align-items:center;gap:8px}.manual-form button{justify-self:end}.manual-form p{grid-column:1/-1;margin:0}@media(max-width:700px){.manual-form{grid-template-columns:1fr}.manual-form button{justify-self:stretch}}
