:root{--bg:#0c1220;--surface:#151d2e;--text:#f0f4fc;--muted:#94a8c4;--accent:#38bdf8;--accent-dim:#0ea5e9;--danger:#f87171;--festive-gold:#fcd34d;--festive-coral:#fb7185;--festive-violet:#c4b5fd;--festive-magenta:#e879f9;--radius:12px;--font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-body:1rem;--font-title:1.5rem;--font-section:1.25rem}*{box-sizing:border-box}html{font-size:100%}body,html{margin:0;min-height:100%;background-color:var(--bg);background-image:radial-gradient(ellipse 100% 60% at 50% -15%,rgba(196,181,253,.18),transparent 55%),radial-gradient(ellipse 70% 50% at 100% 30%,rgba(251,113,133,.12),transparent 50%),radial-gradient(ellipse 60% 45% at 0 70%,rgba(252,211,77,.1),transparent 45%);color:var(--text);font-family:var(--font);font-size:var(--font-body);line-height:1.55}a{color:var(--accent)}a:hover{color:var(--accent-dim)}main{max-width:560px;margin:0 auto;padding:2rem 1.25rem 4rem}main:has(.admin-page){max-width:min(72rem,100%)}h1{font-size:var(--font-title);font-weight:600;margin:0 0 .75rem;color:var(--text)}.home-page{text-align:left}.home-page .home-title{text-align:center;font-size:clamp(1.35rem,4.5vw,1.75rem);font-weight:700;letter-spacing:-.02em;line-height:1.2;margin:0 0 1.25rem;padding:0 .25rem;background:linear-gradient(115deg,var(--festive-gold) 0,#fef3c7 18%,var(--festive-violet) 45%,var(--festive-magenta) 72%,var(--festive-coral) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}@supports not ((-webkit-background-clip:text) or (background-clip:text)){.home-page .home-title{color:var(--festive-gold)}}.card-festive{border:1px solid rgba(196,181,253,.35);box-shadow:0 0 0 1px rgba(252,211,77,.08),0 12px 40px rgba(15,23,42,.45);background:linear-gradient(160deg,rgba(30,41,59,.95),rgba(21,29,46,.98))}.card-festive-heading{font-size:var(--font-section);font-weight:600;color:var(--festive-gold);margin-bottom:.35rem}.btn-festive{background:linear-gradient(135deg,#0ea5e9,#8b5cf6 50%,#ec4899);box-shadow:0 4px 20px rgba(14,165,233,.35)}.btn-festive:hover{background:linear-gradient(135deg,#0284c7,#7c3aed 50%,#db2777);box-shadow:0 6px 24px rgba(236,72,153,.35)}h2{font-size:var(--font-section);font-weight:600;margin:0 0 .75rem;color:var(--text)}p{margin:0 0 1rem;font-size:var(--font-body);color:var(--muted)}p strong{color:var(--text)}.card{background:var(--surface);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-top:1.25rem;font-size:var(--font-body)}.join-form-actions{display:flex;justify-content:flex-end;margin-top:1.25rem}.join-form-hint{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.join-form-hint p{margin:0;line-height:1.5}.join-form-optional-rule{border:none;border-top:1px solid rgba(196,181,253,.28);margin:1.35rem 0 .75rem}.join-form-optional-title{margin:0 0 .4rem;font-size:var(--font-body);color:var(--muted);font-weight:600}.join-form-optional-intro{margin:0 0 1rem;font-size:var(--font-body);line-height:1.5}.join-form-success-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.join-form-success-actions .btn{margin-top:0}label{display:block;font-size:var(--font-body);color:var(--muted);margin-bottom:.35rem}input[type=date],input[type=email],input[type=password],input[type=text],textarea{resize:vertical;min-height:4.5rem}.admin-draw-select,input[type=date],input[type=email],input[type=password],input[type=text],select,textarea{width:100%;padding:.6rem .75rem;border-radius:8px;border:1px solid #2d3a4d;background:var(--bg);color:var(--text);font-size:var(--font-body);font-family:var(--font);line-height:1.45}.admin-draw-select,select{min-height:auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}input[type=date],input[type=email],input[type=password],input[type=text]{min-height:unset;resize:none}.join-stay-dates-row{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end}.join-stay-date-field{flex:1 1;min-width:10rem}.join-stay-date-field input[type=date]{min-height:auto}.join-stay-dates-legend{display:block;font-size:var(--font-body);color:var(--muted);margin-bottom:0}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.btn,button{display:inline-block;margin-top:1rem;padding:.55rem 1rem;border-radius:8px;border:none;background:var(--accent);color:#fff;font-size:var(--font-body);font-weight:500;cursor:pointer;text-decoration:none}.btn:hover,button:hover{background:var(--accent-dim)}.btn-secondary{background:rgba(148,163,184,.22);color:var(--text);border:1px solid rgba(148,163,184,.35)}.btn-secondary:hover{background:rgba(148,163,184,.32)}button:disabled{opacity:.5;cursor:not-allowed}.muted{color:var(--muted)}.error,.muted{font-size:var(--font-body)}.error{color:var(--danger);margin-top:.5rem}.result-row{margin-bottom:1rem}.result-row strong{display:block;color:var(--muted);font-size:var(--font-body);text-transform:uppercase;letter-spacing:.04em}.result-row span{font-size:var(--font-body);color:var(--text)}.result-row .nye-dinner-assignment strong{display:inline;color:var(--text);font-weight:600;text-transform:none;letter-spacing:normal}.allergy-by-ingredient{margin-top:.75rem;display:flex;flex-direction:column;gap:.4rem}.allergy-ingredient-line{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:.15rem;row-gap:.1rem;line-height:1.45;font-size:var(--font-body)}.allergy-ingredient-people{color:var(--text)}.result-row .allergy-diet-key{display:inline;color:var(--text);font-weight:600;text-transform:lowercase;letter-spacing:normal;flex-shrink:0}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:var(--bg);padding:.15rem .4rem;border-radius:4px;word-break:break-all}.instruction-list,code{font-size:var(--font-body)}.instruction-list{margin:.5rem 0 0;padding-left:1.25rem;color:var(--muted)}.instruction-list li{margin-bottom:.5rem}.instruction-list li:last-child{margin-bottom:0}em.muted{font-size:var(--font-body)}.admin-lead{margin:0 0 1.25rem;line-height:1.55}.admin-lead strong{color:var(--text)}.admin-hint{margin:0 0 .5rem;font-size:var(--font-body);color:var(--muted);line-height:1.45}.admin-hint strong{color:var(--text)}.pop-quiz-list{list-style:none;margin:1rem 0 0;padding:0}.pop-quiz-card{background:var(--surface);border:1px solid rgba(196,181,253,.25);border-radius:var(--radius);padding:1rem 1.15rem;margin-bottom:.75rem}.pop-quiz-meta{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem}.pop-quiz-fact{margin:0 0 .75rem;color:var(--text);font-size:var(--font-body)}.pop-quiz-name{margin:0;color:var(--festive-gold);font-size:var(--font-body)}button.pop-quiz-reveal{margin-top:0;background:transparent;color:var(--accent);border:1px solid rgba(56,189,248,.45);padding:.4rem .75rem;font-size:.9rem}button.pop-quiz-reveal:hover{background:rgba(56,189,248,.12);color:var(--text)}.pop-quiz-vote-list{list-style:none;margin:0;padding:0}.pop-quiz-vote-item{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid rgba(196,181,253,.2)}.pop-quiz-vote-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.pop-quiz-vote-fact{margin:0 0 .65rem;color:var(--text);font-size:var(--font-body)}.pop-quiz-vote-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.pop-quiz-select{flex:1 1;min-width:12rem;max-width:100%}.pop-quiz-saving{font-size:.85rem;color:var(--muted)}.pop-quiz-result{margin:.65rem 0 0;font-size:var(--font-body)}.pop-quiz-correct{color:#4ade80;font-weight:600}.pop-quiz-wrong{color:var(--muted)}.pop-quiz-wrong strong{color:var(--festive-gold)}.pop-quiz-score-summary{margin:0 0 1rem;padding:.65rem .85rem;border-radius:var(--radius);background:rgba(196,181,253,.12);border:1px solid rgba(196,181,253,.28);font-size:var(--font-body);line-height:1.45;color:var(--text)}.pop-quiz-score-summary strong{font-weight:700;color:var(--text)}.pop-quiz-vote-section{margin-top:1.25rem;margin-bottom:0}.admin-event-title-cell{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.admin-event-title-cell strong{min-width:0}.admin-event-copy-link{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:.25rem;margin:-.2rem 0;border:none;border-radius:6px;background:transparent;color:var(--accent);cursor:pointer}.admin-event-copy-link:hover{color:var(--accent-dim);background:rgba(56,189,248,.12)}.admin-event-copy-link svg{width:1.125rem;height:1.125rem;display:block}.admin-event-copy-link.is-copied{color:#4ade80}.admin-event-copy-link.is-copied:hover{color:#86efac;background:rgba(74,222,128,.12)}.admin-events-section{margin-top:1rem;margin-bottom:1.5rem}.admin-events-wrap{overflow-x:auto;margin-top:.5rem;border-radius:var(--radius);border:1px solid rgba(196,181,253,.18);background:rgba(15,23,42,.35)}.admin-events-table{width:100%;min-width:36rem;border-collapse:collapse;font-size:var(--font-body)}.admin-events-table td,.admin-events-table th{padding:.55rem .65rem;text-align:left;vertical-align:middle;border-bottom:1px solid rgba(196,181,253,.15)}.admin-events-table thead th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.admin-event-participants-row td{padding-top:.35rem;padding-bottom:.65rem;border-bottom:1px solid rgba(196,181,253,.22);background:rgba(15,23,42,.45);font-size:.95rem;line-height:1.45;vertical-align:top}.admin-event-participants-label{color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.admin-event-participants-names{color:var(--text)}.admin-participant-list{list-style:none;margin:.35rem 0 0;padding:0}.admin-participant-list-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .75rem;padding:.35rem 0;border-bottom:1px solid rgba(196,181,253,.12)}.admin-participant-list-item:last-child{border-bottom:none;padding-bottom:0}.admin-participant-remove{margin:0;padding:.2rem .5rem;font-size:.75rem;border-radius:6px;border:1px solid rgba(251,113,133,.45);background:rgba(251,113,133,.1);color:#fecaca;cursor:pointer;font-family:var(--font)}.admin-participant-remove:hover:not(:disabled){background:rgba(251,113,133,.2)}.admin-participant-remove:disabled{opacity:.55;cursor:not-allowed}.admin-events-num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.admin-joined-cell{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:.45rem}.admin-joined-count{line-height:1.2}.admin-joined-toggle{display:inline-flex;align-items:center;justify-content:center;margin:0;padding:.15rem .35rem;min-width:1.65rem;min-height:1.65rem;border-radius:6px;border:1px solid rgba(196,181,253,.35);background:rgba(15,23,42,.65);color:var(--text);font-size:.75rem;font-family:var(--font);cursor:pointer;line-height:1}.admin-joined-toggle:hover{border-color:rgba(196,181,253,.55);background:rgba(30,41,59,.75)}.admin-joined-toggle-chevron{display:block;font-size:.55rem;opacity:.9;line-height:1;transform:translateY(.04em)}.admin-events-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.admin-events-action-select{flex:1 1;min-width:9rem;max-width:14rem;padding:.4rem .5rem;border-radius:8px;border:1px solid #2d3a4d;background:var(--bg);color:var(--text);font-size:.9rem;font-family:var(--font);min-height:auto}main:has(.admin-page) .admin-events-action-select{max-width:min(22rem,100%)}.admin-events-go{flex-shrink:0;padding:.4rem .85rem;font-size:.9rem}.admin-events-empty{margin:.5rem 0 0}.panel-pop-quiz-inline{margin-top:1.25rem;padding:1.1rem 1.2rem;border-radius:var(--radius);border:1px solid rgba(196,181,253,.28);background:linear-gradient(165deg,rgba(30,41,59,.45),rgba(21,29,46,.65))}.admin-events-facts-title{margin:0 0 .85rem;font-size:1rem}.pop-quiz-list-admin{margin-top:.75rem;margin-bottom:0}.pop-quiz-card-admin{background:rgba(15,23,42,.45);border-color:rgba(196,181,253,.2)}.admin-events-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.35rem}.admin-events-toolbar .admin-section-heading{margin:0}.admin-toolbar-create-btn{flex-shrink:0}.admin-modal-dialog{max-width:min(26rem,calc(100vw - 2rem));width:100%;padding:0;border:1px solid rgba(196,181,253,.35);border-radius:var(--radius);background:linear-gradient(160deg,rgba(30,41,59,.98),rgba(21,29,46,.99));color:var(--text);box-shadow:0 24px 60px rgba(15,23,42,.65)}.admin-modal-dialog::-webkit-backdrop{background:rgba(8,12,22,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.admin-modal-dialog::backdrop{background:rgba(8,12,22,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.admin-modal-inner{padding:1.15rem 1.25rem 1.35rem}.admin-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.admin-modal-title{margin:0;font-size:1.2rem;font-weight:700;color:var(--text)}.admin-modal-close{flex-shrink:0;border:none;background:transparent;color:var(--muted);font-size:1.5rem;line-height:1;padding:.15rem .35rem;margin:-.15rem -.25rem 0 0;cursor:pointer;border-radius:6px}.admin-modal-close:hover{color:var(--text);background:rgba(196,181,253,.12)}.admin-create-event-form-actions{display:flex;justify-content:flex-end;margin-top:1.25rem}.admin-create-event-form-modal .error{margin-top:.75rem}.admin-section-heading{font-size:1.2rem;font-weight:700;margin:0 0 .25rem;color:var(--text)}.admin-event-panel{margin-top:.75rem}.admin-panel-title{font-size:1.2rem;font-weight:700;margin:0 0 .75rem;color:var(--text)}.admin-embedded-form{margin:0;padding:0}.admin-draw-heading{font-size:1.05rem;font-weight:700;color:var(--text)}.admin-form-card{border-radius:var(--radius);border:1px solid rgba(196,181,253,.25)}