:root{--night: #1c0f45;--night-2: #2a1766;--violet: #4b2a9e;--moon: #fff3b0;--yellow: #ffd83a;--pink: #ff5d7a;--ink: #f4efff;--ink-dim: #c3b8e8;--card: #2f1c70;--card-line: #4a3596;--paper: #fffaf0;--paper-ink: #2a1a55;--ok: #7ee2a8;--font-display: "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", system-ui, sans-serif;--font-body: "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", system-ui, sans-serif;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--night);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.7;overflow-x:hidden}h1,h2,h3{font-family:var(--font-display);font-weight:700;margin:0;text-wrap:balance;line-height:1.25}p{margin:0}:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.hero{position:relative;height:150svh;min-height:820px}.sky{position:sticky;top:0;height:100svh;min-height:560px;overflow:hidden;background:radial-gradient(120% 80% at 50% 0%,var(--violet) 0%,var(--night-2) 45%,var(--night) 100%)}.layer{position:absolute;inset:0;pointer-events:none}.stars{background-image:radial-gradient(2px 2px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 30% 8%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 52% 22%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 70% 12%,#fff 50%,transparent 51%),radial-gradient(2.5px 2.5px at 86% 26%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 8% 40%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 92% 44%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 44% 36%,#fff 50%,transparent 51%);opacity:.85}.moon{display:grid;place-items:start center;padding-top:12svh}.moon i{width:min(62vw,300px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 38% 35%,#fffbe0 0%,var(--moon) 55%,#f0d46a 100%);box-shadow:0 0 80px 20px #ffe67840}.title-wrap{display:grid;place-items:center;align-content:center;gap:12px;text-align:center;padding-inline:20px;padding-block:0 12svh}.title-wrap .eyebrow{font-family:var(--font-display);color:var(--yellow);letter-spacing:.14em;font-size:15px}.title-wrap h1{font-size:clamp(44px,13vw,84px);color:var(--paper);text-shadow:0 4px 0 var(--violet),0 8px 24px rgba(0,0,0,.4)}.title-wrap .sub{font-family:var(--font-display);font-size:clamp(18px,5vw,24px);background:var(--yellow);color:var(--paper-ink);padding:2px 16px;border-radius:999px}.title-wrap .hint{font-size:13px;color:var(--ink-dim);margin-top:14px}.hills svg{position:absolute;bottom:-2px;left:0;width:100%;height:34svh}.hills-far svg{height:44svh}.floaters span,.hills .pumpkin{position:absolute}.bat{width:54px;height:22px}.bat:before{content:"";position:absolute;inset:0;background:#120833;clip-path:polygon(0 30%,20% 0,32% 40%,50% 20%,68% 40%,80% 0,100% 30%,78% 70%,60% 55%,50% 100%,40% 55%,22% 70%)}.bat-1{top:14%;left:8%}.bat-2{top:22%;right:10%;transform:scale(.7)}.bat-3{top:56%;right:16%;transform:scale(.85)}.ghost{width:46px;height:56px;background:#f8f4ff;border-radius:23px 23px 6px 6px;opacity:.9}.ghost:before,.ghost:after{content:"";position:absolute;top:18px;width:6px;height:8px;border-radius:50%;background:var(--night)}.ghost:before{left:13px}.ghost:after{right:13px}.ghost-1{top:46%;left:6%}.pumpkin{width:52px;height:44px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#ffa63d,#e76a12)}.pumpkin:before{content:"";position:absolute;top:-8px;left:23px;width:6px;height:12px;background:#3d7a2a;border-radius:2px}.pumpkin-1{bottom:14svh;left:14%}.pumpkin-2{bottom:12svh;right:18%;transform:scale(.75)}.event-info{display:flex;flex-direction:column;gap:20px}.sec-title{font-size:clamp(28px,7vw,36px);color:var(--yellow)}.info{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:520px){.info{grid-template-columns:1fr}}.info div{background:var(--card);border:1px solid var(--card-line);border-radius:18px;padding:16px 18px;display:flex;flex-direction:column;gap:2px;min-width:0}.info .info-venue{grid-column:1 / -1}.info dd{margin:0;overflow-wrap:anywhere}.info .k{font-size:13px;color:var(--ink-dim);letter-spacing:.06em}.info .v{font-family:var(--font-display);font-size:20px;font-variant-numeric:tabular-nums}.info .addr{font-size:14px;color:var(--ink-dim)}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.layer{will-change:transform;animation:linear both;animation-timeline:scroll(root);animation-range:0 100svh}.stars{animation-name:drift-slow}.moon{animation-name:drift-moon}.hills-far{animation-name:drift-mid}.hills-near{animation-name:drift-fast}.floaters{animation-name:drift-float}.title-wrap{will-change:transform,opacity;animation-name:title-out}@keyframes drift-slow{to{transform:translateY(-6svh)}}@keyframes drift-moon{to{transform:translateY(-18svh) scale(.9)}}@keyframes drift-mid{to{transform:translateY(-12svh)}}@keyframes drift-fast{to{transform:translateY(-26svh)}}@keyframes drift-float{to{transform:translateY(-40svh)}}@keyframes title-out{to{transform:translateY(-14svh);opacity:0}}}}.vote-bar{position:fixed;inset-inline:0;top:0;z-index:20;padding-inline:16px;padding-top:calc(10px + env(safe-area-inset-top,0px));padding-bottom:10px;background:#1c0f45eb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--card-line)}.vote-bar .inner{max-width:760px;margin-inline:auto;display:flex;align-items:center;gap:12px;justify-content:space-between}.vote-bar .state{display:flex;align-items:center;gap:10px;min-width:0;font-size:15px}.vote-bar .text{display:flex;flex-direction:column;min-width:0}.vote-bar .countdown{font-size:12px;color:var(--ink-dim);font-variant-numeric:tabular-nums}.vote-bar .dot{width:10px;height:10px;border-radius:50%;background:var(--ink-dim);flex:none}.vote-bar[data-status=open] .dot{background:var(--ok);box-shadow:0 0 0 4px #7ee2a840}.vote-bar .left{color:var(--yellow);font-weight:700;font-variant-numeric:tabular-nums}.vote-bar .go{flex:none;background:var(--yellow);color:var(--paper-ink);border:0;border-radius:999px;padding:6px 16px;font-weight:700;white-space:nowrap;text-decoration:none;font-size:14px}.activity-page{position:relative;z-index:2;background:var(--night);display:flex;flex-direction:column;gap:64px;padding-inline:16px;padding-block:40px 120px;border-radius:28px 28px 0 0;margin-top:-40svh;box-shadow:0 -20px 40px #00000059}.activity-page>section{width:100%;max-width:760px;margin-inline:auto}.entries-section{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 88px);display:flex;flex-direction:column;gap:20px}.entries{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media(min-width:640px){.entries{grid-template-columns:repeat(3,minmax(0,1fr))}}.entry{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:20px;background:var(--paper);color:var(--paper-ink)}.entry-photo{aspect-ratio:4 / 5;max-width:100%;overflow:hidden}.entry-photo img{display:block;width:100%;height:100%;object-fit:cover}.entry-photo-placeholder{width:100%;height:100%;display:grid;place-items:center;background:#2a1a5514;font-family:var(--font-display);font-size:13px;color:#2a1a558c}.entry-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}.entry-no{align-self:flex-start;background:var(--paper-ink);color:var(--yellow);font-family:var(--font-display);font-size:14px;padding:0 10px;border-radius:999px;font-variant-numeric:tabular-nums}.entry-name{margin:0;font-size:18px;overflow-wrap:anywhere}.entries-message{color:var(--ink-dim);text-align:center;padding:24px 0}.vote-btn{margin-top:6px;border:0;border-radius:999px;padding:8px 0;font:inherit;font-weight:700;font-size:15px;background:var(--violet);color:#fff;cursor:pointer}.vote-btn[disabled]{background:#ddd6ee;color:#7a6f99;cursor:default}.entry.mine{outline:3px solid var(--yellow);outline-offset:-3px}.entry.mine .vote-btn{background:var(--yellow);color:var(--paper-ink)}.vote-btn.retract{font-weight:500}.toast-region{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:70;width:max-content;max-width:calc(100vw - 32px);pointer-events:none}.toast{margin:0;background:var(--ok);color:#0c3320;font-weight:700;padding:10px 20px;border-radius:999px;text-align:center}.toast[data-kind=error]{background:var(--pink);color:#2a0a14}
