:root{--ink:#272054;--ink-deep:#1e1948;--ink-raised:#3a3280;--line:#4a4290;--sky:#8ad8f8;--sky-deep:#3e8fc4;--paper:#f6f1e4;--muted:#c9c4ec;--danger:#ff7a7a;--white:#fff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--ink);color:var(--white);-webkit-tap-highlight-color:transparent;margin:0;font-family:Nunito,system-ui,sans-serif}button{font:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible{outline:3px solid var(--sky);outline-offset:2px}.screen{flex-direction:column;max-width:760px;min-height:100dvh;margin:0 auto;padding:10px 16px 0;display:flex}.masthead{flex-direction:column;align-items:center;gap:2px;display:flex}.logo{width:200px;height:auto;display:block}.presents{letter-spacing:2px;text-transform:uppercase;color:var(--sky);margin:0;font-size:12px;font-weight:800}.title{text-align:center;text-shadow:2px 2px 0 var(--sky-deep), 4px 4px 0 #1c5f8e;margin:4px 0 0;font-family:Cinzel,Georgia,serif;font-size:clamp(28px,6vw,40px);font-weight:900;line-height:1.05}.lede{text-align:center;max-width:520px;margin:8px auto 0;font-size:16px;font-weight:600;line-height:1.4}.lede b{color:var(--sky);font-weight:900}.candies{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin:12px 0 0;padding:0 0 16px;list-style:none;display:grid}.candy{position:relative}.candy-add{border:2px solid var(--line);background:var(--ink-raised);width:100%;min-height:58px;color:var(--white);text-align:left;border-left-width:8px;border-radius:3px 8px 8px 3px;flex-direction:column;justify-content:center;gap:4px;padding:6px 10px;font-size:15px;font-weight:800;display:flex}.candy-add:disabled{opacity:.45}.has-votes .candy-add{border-color:var(--sky);background:var(--paper);color:var(--ink);padding-right:44px;font-weight:900;box-shadow:0 0 16px #8ad8f899}.has-votes .candy-add:disabled{opacity:1}.candy-name{line-height:1.1}.dots{gap:4px;display:flex}.dot{background:var(--sky-deep);border:2px solid var(--ink);border-radius:50%;width:12px;height:12px}.candy-remove{border:2px solid var(--ink);background:var(--white);width:34px;height:34px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.tray{background:var(--ink-deep);border-top:2px solid var(--line);padding:12px 16px calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:10px;margin:auto -16px 0;display:flex;position:sticky;bottom:0}.tray-top{justify-content:space-between;align-items:center;display:flex}.tray-label{letter-spacing:1px;color:var(--sky);font-family:Cinzel,Georgia,serif;font-size:14px;font-weight:900}.link{color:var(--sky);background:0 0;border:0;padding:8px 0;font-size:14px;font-weight:800;text-decoration:underline}.slots-row{align-items:center;gap:12px;display:flex}.slots{gap:6px;display:flex}.slot{border:2px dashed var(--sky);border-radius:50%;width:26px;height:26px}.slot.used{background:var(--sky);border-style:solid}.left{font-size:16px;font-weight:800}.error{color:var(--danger);margin:0;font-weight:800}.tray-buttons,.confirm-buttons{gap:10px;display:flex}.primary,.secondary,.danger{border-radius:12px;min-height:56px;padding:0 16px;font-size:16px;font-weight:800}.primary{background:var(--sky);color:var(--ink);border:0;flex:1;font-family:Cinzel,Georgia,serif;font-size:20px;font-weight:900}.primary:disabled{background:var(--ink-raised);color:#8f89c2}.secondary{border:2px solid var(--line);color:var(--white);background:0 0}.secondary:disabled{color:#8f89c2}.danger{background:var(--danger);color:var(--ink-deep);border:0;flex:1;font-weight:900}.thanks{text-align:center;background:#000;align-items:center;max-width:none;padding-bottom:32px}.vortex{width:min(100%,420px);height:auto;display:block}.thanks .title{margin-top:-40px}.thanks .lede{color:#d9e9f5;margin-bottom:24px}.big{flex:none;width:min(100%,420px);min-height:64px;margin-top:auto;font-size:22px;box-shadow:0 0 22px #8ad8f88c}.thanks-standings{min-height:44px;margin-top:12px}.standings .lede{color:var(--muted)}.voting-state{border:2px solid var(--line);color:var(--muted);border-radius:999px;align-self:center;margin:10px 0 0;padding:4px 14px;font-size:15px;font-weight:800}.voting-state.open{border-color:var(--sky);color:var(--sky)}.notice{text-align:center;color:var(--danger);margin:10px 0 0;font-weight:800}.stack{flex-direction:column;align-items:center;gap:4px;margin:14px 0 0;padding:0;list-style:none;display:flex}.book{background:var(--ink-raised);border-bottom:4px solid var(--ink-deep);border-radius:4px;align-items:center;gap:14px;width:100%;min-height:48px;padding:6px 14px;font-size:17px;font-weight:800;display:flex}.book .place{min-width:26px;color:var(--sky);font-family:Cinzel,Georgia,serif;font-size:20px;font-weight:900}.book-votes{white-space:nowrap;color:var(--muted);margin-left:auto;font-size:15px}.book-1{background:var(--sky);min-height:62px;color:var(--ink);border-bottom:5px solid var(--sky-deep);font-family:Cinzel,Georgia,serif;font-size:22px;font-weight:900}.book-1 .place{color:var(--ink);font-size:30px}.book-1 .book-votes{color:var(--ink);font-family:Nunito,system-ui,sans-serif}.book-2,.book-3{background:var(--paper);color:var(--ink);border-bottom-color:#c9bfa4;font-size:18px;font-weight:900}.book-2 .place,.book-3 .place,.book-2 .book-votes,.book-3 .book-votes{color:var(--ink)}.book-2{width:94%}.book-3{width:97%}.book-4{width:91%}.book-5{width:96%}.rest{margin-top:16px}.rest h2{letter-spacing:1px;color:var(--sky);margin:0 0 6px;font-family:Cinzel,Georgia,serif;font-size:14px;font-weight:900}.rest ol{color:#e4e1f7;flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-size:15px;font-weight:600;list-style:none;display:flex}.rest .place{color:var(--sky);font-weight:900}.rest-votes{color:var(--muted)}.none{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:15px;font-weight:600;list-style:none;display:flex}.none li{white-space:nowrap}.standings{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.standings-buttons{padding:20px 0 calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:10px;margin-top:auto;display:flex}.confirm{border:2px solid var(--danger);background:var(--ink-deep);text-align:center;border-radius:12px;flex-direction:column;gap:10px;padding:12px;font-weight:800;display:flex}.confirm p{margin:0}.confirm .secondary{flex:1}
