@import"https://fonts.googleapis.com/css2?family=Cardo:ital,wght@0,400;0,700;1,400&family=Cinzel+Decorative:wght@400;700&family=UnifrakturCook:wght@700&display=swap";*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Cardo,serif;background:#08070c;color:#f5f1ea}body::-webkit-scrollbar{width:10px}body::-webkit-scrollbar-thumb{background:#d1b97f59;border-radius:10px}#root{min-height:100vh}a{color:inherit}button,input,textarea{font:inherit}::selection{background:#d14c4c4d}:root{--haze: rgba(255, 255, 255, .02);--velvet: #0b0a0f;--ink: #110f18;--gild: #d1b97f;--crimson: #d14c4c;--silver: rgba(255, 255, 255, .64);--muted: rgba(255, 255, 255, .38);--shadow: rgba(12, 10, 18, .85);color-scheme:dark}.app-shell{position:relative;min-height:100vh;padding:clamp(1.5rem,3vw,3rem);background:radial-gradient(circle at 20% 18%,rgba(255,124,124,.38),transparent 48%),radial-gradient(circle at 82% 15%,rgba(230,201,137,.35),transparent 54%),radial-gradient(circle at 50% 88%,rgba(132,102,196,.4),transparent 60%),linear-gradient(140deg,#120d1d,#1f1330 48%,#251126 78%);display:flex;align-items:center;justify-content:center;overflow:hidden}.app-shell__auras{pointer-events:none;position:absolute;inset:0;overflow:hidden}.app-shell__auras span{position:absolute;filter:blur(80px);opacity:.25;border-radius:50%;background:radial-gradient(circle,#ffffff47,#fff0);mix-blend-mode:screen}.app-shell__auras span:nth-child(1){width:36vw;height:36vw;top:-12vw;left:12vw}.app-shell__auras span:nth-child(2){width:28vw;height:28vw;top:42vh;right:8vw}.app-shell__auras span:nth-child(3){width:24vw;height:24vw;bottom:-6vw;left:4vw}.invitation{position:relative;z-index:1;width:min(720px,100%);margin:auto}.invitation__frame{position:relative;padding:clamp(2.4rem,4vw,3.8rem);background:#0c090fe0;border:2px solid rgba(211,185,127,.5);border-radius:22px;box-shadow:0 32px 60px #07070bcc,inset 0 0 0 1px #ffffff0f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.invitation__frame:before,.invitation__frame:after{content:"";position:absolute;inset:18px;border:1px solid rgba(209,185,127,.32);border-radius:18px;pointer-events:none}.invitation__frame:after{inset:40px;border-color:#d1b97f29;border-radius:12px}.masthead{text-align:center;color:var(--silver);font-family:Cardo,serif;padding-bottom:clamp(1.5rem,3vw,2.5rem)}.masthead__whisper{font-size:clamp(.85rem,1.4vw,1rem);letter-spacing:.25em;text-transform:uppercase;color:var(--muted);margin-bottom:1.25rem}.masthead__title{margin:0;font-family:UnifrakturCook,cursive;font-weight:700;font-size:clamp(2.6rem,6vw,4.5rem);color:#f6f4f1;text-transform:lowercase;letter-spacing:.04em;text-shadow:0 0 18px rgba(198,160,86,.24),0 2px 18px rgba(0,0,0,.8)}.masthead__subtitle{font-family:Cinzel Decorative,cursive;font-size:clamp(1.1rem,3vw,1.6rem);letter-spacing:.18em;text-transform:uppercase;color:var(--gild);margin-top:.5rem}.masthead__intro{max-width:520px;margin:1.5rem auto 0;color:var(--silver);font-size:clamp(.95rem,1.8vw,1.05rem);line-height:1.6}.vote-form{display:grid;gap:clamp(1.35rem,2.8vw,2rem);font-family:Cardo,serif;color:var(--silver);padding-bottom:clamp(1.6rem,6vw,2.6rem)}.vote-form__group{display:grid;gap:.75rem}.vote-form__label{font-size:clamp(1.05rem,2.2vw,1.3rem);letter-spacing:.04em;text-transform:uppercase;color:#f2ddae}.vote-form__hint{font-size:clamp(.85rem,1.6vw,.95rem);color:var(--muted)}.vote-form__hint--warning{color:var(--crimson);margin-top:-.4rem;text-align:center}.vote-form__input{width:100%;border:1px solid rgba(209,185,127,.25);border-radius:12px;background:#0c0a10eb;color:#f5efe4;padding:.95rem 1.1rem;font-size:clamp(.95rem,1.8vw,1.05rem);line-height:1.5;resize:vertical;min-height:72px;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.vote-form__input:focus{outline:none;border-color:#d14c4ccc;box-shadow:0 0 0 2px #d14c4c59}.vote-form__actions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem}.vote-form__submit{appearance:none;border:1px solid rgba(209,76,76,.8);background:linear-gradient(135deg,#d14c4cd9,#7b2c2cd9);color:#fdf8f2;font-family:Cinzel Decorative,cursive;text-transform:uppercase;letter-spacing:.25em;padding:.9rem 1.8rem;border-radius:999px;cursor:pointer;position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:visible;isolation:isolate;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.vote-form__submit:hover,.vote-form__submit:focus-visible{transform:translateY(-1px);box-shadow:0 12px 28px #d14c4c47;filter:brightness(1.05)}.vote-form__submit:disabled{opacity:.6;cursor:wait;box-shadow:none}.vote-form__submit-label{position:relative;z-index:2}.vote-form__submit-veil{position:absolute;inset:-24px;display:flex;align-items:center;justify-content:center;gap:clamp(.4rem,4vw,1.6rem);pointer-events:none;opacity:0;z-index:1}.vote-form__submit--burst .vote-form__submit-veil{animation:ghost-veil .9s ease-out forwards}.ghost{position:relative;width:clamp(1.5rem,3.6vw,2rem);height:clamp(1.9rem,4.4vw,2.6rem);background:#f8f4f1eb;border-radius:1.3rem 1.3rem .9rem .9rem;box-shadow:0 10px 18px #00000059,inset 0 -6px #ffffffa6;transform:translateY(16px) scale(.4);opacity:0}.ghost:before,.ghost:after{content:"";position:absolute;border-radius:50%}.ghost:before{top:38%;left:50%;width:.4rem;height:.4rem;background:#301c1ccc;transform:translate(-.55rem);box-shadow:.75rem 0 #301c1ccc}.ghost:after{bottom:.15rem;left:50%;width:1.2rem;height:.4rem;background:#301c1ca6;border-radius:999px;transform:translate(-50%);filter:blur(.2px)}.vote-form__submit--burst .ghost--one{animation:ghost-drift-one .9s cubic-bezier(.25,.85,.45,1) forwards}.vote-form__submit--burst .ghost--two{animation:ghost-drift-two .95s cubic-bezier(.25,.85,.45,1) forwards}.vote-form__submit--burst .ghost--three{animation:ghost-drift-three 1s cubic-bezier(.25,.85,.45,1) forwards}.ghost:before,.ghost:after{transition:opacity .2s ease}.vote-form__submit--burst .ghost{will-change:transform,opacity}.vote-form__submit--burst .ghost:before,.vote-form__submit--burst .ghost:after{opacity:1}.vote-form__submit--burst .ghost--two:after{width:1.4rem}.vote-form__submit--burst .ghost--three:after{width:1.1rem}.vote-form__submit--burst .ghost--two:before{transform:translate(-.45rem);box-shadow:.65rem 0 #301c1ccc}.vote-form__submit--burst .ghost--three:before{transform:translate(-.5rem);box-shadow:.7rem 0 #301c1ccc}.vote-form__status{margin:0;font-size:clamp(.85rem,1.6vw,.95rem);padding:.85rem 1rem;border-radius:12px;line-height:1.5;background:#ffffff0a;border:1px solid rgba(209,185,127,.2)}.vote-form__status--error{border-color:#d14c4c73;background:#d14c4c1f;color:#ffcbc9}.vote-form__status--success{border-color:#9fd17f73;background:#9fd17f1f;color:#dff7d0}.coda{margin-top:clamp(1.8rem,3vw,2.4rem);text-align:center;color:var(--muted);font-family:Cinzel Decorative,cursive;letter-spacing:.18em;text-transform:uppercase;font-size:clamp(.78rem,1.4vw,.9rem)}.coda__line+.coda__line{margin-top:.6rem}@keyframes ghost-veil{0%{opacity:0}15%{opacity:1}60%{opacity:.85}to{opacity:0}}.admin-shell{position:relative;min-height:100vh;padding:clamp(1.5rem,3vw,3rem);background:linear-gradient(135deg,#09070df5,#1c1428f5),radial-gradient(circle at 20% 30%,rgba(255,140,140,.2),transparent 55%),radial-gradient(circle at 80% 70%,rgba(158,128,209,.2),transparent 60%);color:#f5efe4;display:flex;align-items:center;justify-content:center}.admin-veil{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(209,76,76,.18),transparent 58%),radial-gradient(circle at 70% 80%,rgba(209,185,127,.18),transparent 60%);pointer-events:none;mix-blend-mode:screen}.admin-panel{position:relative;z-index:1;width:min(960px,100%);display:grid;gap:clamp(1.5rem,2vw,2rem);background:#0c0910db;border:1px solid rgba(209,185,127,.28);border-radius:26px;padding:clamp(1.75rem,3vw,3rem);box-shadow:0 36px 64px #040307d9;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.admin-panel__header{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}.admin-panel__title{margin:0;font-family:UnifrakturCook,cursive;text-transform:lowercase;font-size:clamp(2.4rem,4vw,3.4rem);letter-spacing:.04em}.admin-panel__subtitle{margin:.2rem 0 0;font-family:Cinzel Decorative,cursive;letter-spacing:.22em;font-size:clamp(.85rem,1.5vw,1rem);text-transform:uppercase;color:#f5efe4c7}.admin-panel__header-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;justify-content:flex-end}.admin-card{background:#130e19b8;border:1px solid rgba(209,185,127,.2);border-radius:20px;padding:clamp(1.5rem,3vw,2.25rem);display:grid;gap:1.25rem}.admin-card--login{max-width:420px;justify-self:center;text-align:center}.admin-card__title{margin:0;font-family:Cinzel Decorative,cursive;letter-spacing:.18em;text-transform:uppercase;font-size:clamp(1rem,2vw,1.2rem)}.admin-card__copy{margin:0;color:#f5efe4b8;font-size:clamp(.9rem,1.6vw,1rem);line-height:1.65}.admin-login{display:grid;gap:1rem}.admin-login__field{display:grid;gap:.5rem;text-align:left}.admin-login__label{font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;color:#d1b97fc7}.admin-login__input{border-radius:12px;border:1px solid rgba(209,185,127,.28);background:#0a070cd9;padding:.85rem 1rem;color:inherit;outline:none;transition:border-color .25s ease,box-shadow .25s ease}.admin-login__input:focus{border-color:#d14c4c99;box-shadow:0 0 0 2px #d14c4c40}.admin-login__error{margin:-.25rem 0 0;color:#ffb0b0;font-size:.85rem}.admin-action{border-radius:999px;border:1px solid transparent;font-family:Cinzel Decorative,cursive;text-transform:uppercase;letter-spacing:.18em;padding:.75rem 1.6rem;font-size:.75rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;background:none;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.admin-action:hover,.admin-action:focus-visible{transform:translateY(-1px);filter:brightness(1.05)}.admin-action:disabled{opacity:.6;cursor:wait;transform:none}.admin-action--primary{background:linear-gradient(135deg,#d14c4ce6,#762424e6);border-color:#d14c4cb3;color:#fff7ef;box-shadow:0 12px 28px #d14c4c40}.admin-action--outline{border-color:#d1b97f73;color:#f5efe4e0;background:#0c090f8c}.admin-action--ghost{border-color:#d1b97f2e;color:#f5efe4b3;background:#0c090f66}.admin-content{display:grid;gap:clamp(1.25rem,2vw,2rem)}.admin-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;background:#0f0b14a6;border:1px solid rgba(209,185,127,.24);border-radius:18px;padding:1.2rem 1.5rem}.admin-toolbar__label{margin:0;font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:#d1b97f99}.admin-toolbar__value{margin:.2rem 0 0;font-size:1rem;font-family:Cardo,serif}.admin-toolbar__actions{display:flex;align-items:center;gap:.75rem}.admin-alert{margin:0;padding:.9rem 1.2rem;border-radius:12px;border:1px solid rgba(209,76,76,.45);background:#d14c4c1f;color:#ffb0b0;font-size:.95rem}.admin-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(.8rem,2vw,1.2rem)}.admin-metric{background:#130e1ab3;border:1px solid rgba(209,185,127,.2);border-radius:18px;padding:1.1rem 1.4rem;display:grid;gap:.4rem}.admin-metric__label{margin:0;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:#d1b97f99}.admin-metric__value{margin:0;font-size:clamp(1.4rem,3vw,1.8rem);font-family:Cardo,serif}.admin-tallies{display:grid;gap:clamp(1rem,2vw,1.6rem);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.admin-tally-card{background:#120d19b3;border:1px solid rgba(209,185,127,.22);border-radius:18px;padding:1.2rem 1.4rem;display:grid;gap:.8rem}.admin-tally-card header h3{margin:0;font-family:Cinzel Decorative,cursive;letter-spacing:.18em;text-transform:uppercase;font-size:.95rem}.admin-tally-card__hint{margin:.4rem 0 0;color:#f5efe499;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.admin-tally-card__list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.admin-tally-card__item{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;background:#0c0812b8;border-radius:12px;padding:.65rem .8rem}.admin-tally-card__item--empty{justify-content:center;text-align:center;color:#f5efe499;font-size:.85rem}.admin-tally-card__rank{font-family:Cinzel Decorative,cursive;font-size:1.1rem;color:#d1b97fd9}.admin-tally-card__name{font-family:Cardo,serif;font-size:.95rem}.admin-tally-card__count{font-size:.8rem;color:#d1b97fbf}.admin-table{background:#120d19b3;border-radius:18px;border:1px solid rgba(209,185,127,.22);padding:1.2rem 1.4rem;display:grid;gap:.9rem}.admin-table__header h3{margin:0;font-family:Cinzel Decorative,cursive;letter-spacing:.18em;text-transform:uppercase;font-size:.95rem}.admin-table__hint{margin:.35rem 0 0;color:#f5efe499;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.admin-table__viewport{overflow:auto;max-height:320px;border-radius:12px;border:1px solid rgba(209,185,127,.15)}.admin-table table{width:100%;border-collapse:collapse;min-width:540px}.admin-table th,.admin-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid rgba(209,185,127,.12);font-size:.9rem}.admin-table th{position:sticky;top:0;z-index:1;background:#0f0b14f2;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;color:#d1b97fb3}.admin-table__empty{text-align:center;padding:2.5rem 1rem;color:#f5efe499}@media(max-width:720px){.admin-panel{padding:1.5rem;border-radius:22px}.admin-panel__header{flex-direction:column;align-items:flex-start}.admin-panel__header-actions{width:100%;justify-content:flex-start}.admin-toolbar{flex-direction:column;align-items:flex-start}.admin-toolbar__actions{width:100%;justify-content:flex-start}}@keyframes ghost-drift-one{0%{opacity:0;transform:translate3d(-18px,22px,0) scale(.45)}20%{opacity:1}55%{opacity:.85}to{opacity:0;transform:translate3d(-38px,-58px,0) scale(.92)}}@keyframes ghost-drift-two{0%{opacity:0;transform:translate3d(4px,18px,0) scale(.44)}18%{opacity:1}62%{opacity:.92}to{opacity:0;transform:translate3d(6px,-62px,0) scale(.98)}}@keyframes ghost-drift-three{0%{opacity:0;transform:translate3d(22px,24px,0) scale(.38)}22%{opacity:.95}70%{opacity:.88}to{opacity:0;transform:translate3d(40px,-54px,0) scale(.9)}}@media(max-width:640px){.invitation__frame{padding:2.2rem;border-radius:18px}.invitation__frame:before{inset:18px}.invitation__frame:after{inset:34px}}
