@font-face{font-family:ZP Display;src:url(/assets/huninn-subset-DsNt1ajz.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:ZP Noto Sans TC;src:url(/assets/noto-sans-tc-subset-BWkhxbcy.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}:root{--night: #18004f;--night-2: #270059;--violet: #48007d;--lilac: #a275da;--lilac-2: #b58fe4;--moon: #feec62;--yellow: #feff04;--coral: #ff505f;--pink: #fd6e74;--mint: #9edfbd;--ink: #f4efff;--ink-dim: #c3b8e8;--card: #2e0067;--card-line: #48007d;--paper: #fffaf0;--paper-ink: #2a1a55;--ok: var(--mint);--ink-soft: #5a4f80;--paper-tint: #efe6fb;--disabled-bg: #ddd6ee;--disabled-line: #b9aed8;--danger: #b3261e;--violet-hover: #5c1a9a;--violet-press: #33005a;--yellow-hover: #f2c400;--yellow-press: #e6b800;--abyss: #0a0028;--ok-ink: #0c3320;--pink-ink: #2a0a14;--font-system: "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", system-ui, sans-serif;--font-display: "ZP Display", var(--font-system);--font-body: "ZP Noto Sans TC", var(--font-system);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}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}::selection{background:var(--yellow);color:var(--paper-ink)}: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:var(--night)}.layer{position:absolute;inset:0;pointer-events:none}.checker{bottom:-10%;background-color:var(--night);background-image:conic-gradient(var(--night-2) 25%,transparent 0 50%,var(--night-2) 0 75%,transparent 0);background-size:88px 88px;background-position:center top}.moon{display:grid;place-items:start center;padding-top:calc(env(safe-area-inset-top,0px) + 9svh)}.moon svg{width:min(88vw,440px);aspect-ratio:1;border-radius:50%;box-shadow:0 0 0 10px color-mix(in srgb,var(--moon) 12%,transparent),0 0 90px 24px color-mix(in srgb,var(--moon) 28%,transparent)}.bunting svg{position:absolute;top:calc(env(safe-area-inset-top,0px) + 62px);left:50%;translate:-50% 0;width:min(100%,620px);height:auto;overflow:visible}.sparkles span{position:absolute}.spark{width:16px;height:16px;background:#fff;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}.spark-1{top:30%;left:7%;background:#ffb547}.spark-2{top:20%;right:12%;transform:scale(.8)}.spark-3{top:52%;right:6%;transform:scale(1.1)}.spark-4{top:60%;left:4%;transform:scale(.75);background:#ffb547}.spark-5{top:15%;left:38%;transform:scale(.6)}.bat{width:48px;height:20px;background:var(--lilac-2);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%);opacity:.85}.bat-1{top:24%;left:12%}.bat-2{top:40%;right:9%;transform:scale(.75) rotate(-8deg)}.ground{bottom:-30%}.ground .field{position:absolute;left:0;bottom:0;width:100%;height:55%}.ground .tree{position:absolute;bottom:49%;width:min(32vw,200px);height:auto;color:#9a73d6}.ground .tree-left{left:-3vw}.ground .tree-right{right:-3vw;transform:scaleX(-1)}.cast .pet{position:absolute;height:auto;filter:drop-shadow(0 6px 6px color-mix(in srgb,var(--night) 35%,transparent))}.pet-witch{top:calc(env(safe-area-inset-top,0px) + 11svh);right:1vw;width:min(21vw,130px)}.pet-pumpkin{bottom:28%;left:2vw;width:min(19vw,110px)}.pet-poodle{bottom:28%;right:2vw;width:min(21vw,130px)}.pet-devil{bottom:6%;left:3vw;width:min(33vw,200px)}.pet-skeleton{bottom:3%;left:39vw;width:min(18vw,100px)}.pet-vampire{bottom:4%;right:3vw;width:min(41vw,250px)}.title-wrap{display:grid;place-items:center;align-content:start;gap:12px;text-align:center;padding-inline:20px;padding-top:calc(env(safe-area-inset-top,0px) + 21svh)}.title-wrap .eyebrow{font-family:var(--font-display);color:var(--violet);letter-spacing:.12em;font-size:16px;font-weight:700;text-shadow:1.5px 0 #fff,-1.5px 0 #fff,0 1.5px #fff,0 -1.5px #fff,1px 1px #fff,-1px 1px #fff,1px -1px #fff,-1px -1px #fff}.title-wrap h1{font-size:clamp(46px,13.5vw,88px);color:var(--violet);letter-spacing:.04em;text-shadow:3px 0 #fff,-3px 0 #fff,0 3px #fff,0 -3px #fff,2px 2px #fff,-2px 2px #fff,2px -2px #fff,-2px -2px #fff,6px 0 var(--paper-ink),-6px 0 var(--paper-ink),0 6px var(--paper-ink),0 -6px var(--paper-ink),4px 4px var(--paper-ink),-4px 4px var(--paper-ink),4px -4px var(--paper-ink),-4px -4px var(--paper-ink),0 10px var(--paper-ink),0 14px 18px color-mix(in srgb,var(--night) 45%,transparent)}.title-wrap .sub{font-family:var(--font-display);font-size:clamp(17px,4.8vw,22px);font-weight:700;background:#fff;color:var(--violet);border:3px solid var(--paper-ink);padding:0 16px;border-radius:999px;box-shadow:0 4px 0 var(--paper-ink)}.title-wrap .hint{pointer-events:auto;margin-top:10px;min-height:44px;display:inline-flex;align-items:center;gap:6px;padding:0 20px;border:2px solid var(--lilac);border-radius:999px;background:var(--night);color:var(--ink);font-size:15px;font-weight:700;text-decoration:none;-webkit-tap-highlight-color:transparent}.title-wrap .hint svg{width:16px;height:16px}.title-wrap .hint:active{background:var(--violet)}@media(hover:hover){.title-wrap .hint:hover{border-color:var(--ink)}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.layer{animation:linear both;animation-timeline:scroll(root);animation-range:0 100svh}.checker{animation-name:drift-slow}.moon{animation-name:drift-moon}.bunting{animation-name:drift-bunting}.ground{animation-name:drift-ground}.sparkles{animation-name:drift-float}.cast{animation-name:drift-cast}.title-wrap{animation-name:title-out}@keyframes drift-slow{to{transform:translateY(-5svh)}}@keyframes drift-moon{to{transform:translateY(-16svh) scale(.92)}}@keyframes drift-bunting{to{transform:translateY(-12svh)}}@keyframes drift-ground{to{transform:translateY(-22svh)}}@keyframes drift-float{to{transform:translateY(-36svh)}}@keyframes drift-cast{to{transform:translateY(-30svh)}}@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:color-mix(in srgb,var(--night) 94%,transparent);border-bottom:2px solid color-mix(in srgb,var(--lilac) 70%,transparent)}.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 .meta{font-size:12px;color:var(--ink-dim)}.vote-bar .meta>*+*:before{content:"·";margin-inline:6px}.vote-bar .countdown{font-variant-numeric:tabular-nums}.vote-bar .unstable{font-size:12px;color:var(--yellow);font-weight:700}.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 color-mix(in srgb,var(--ok) 25%,transparent)}.vote-bar[data-unstable] .dot{background:var(--yellow);box-shadow:none}.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:2px solid var(--paper-ink);box-shadow:0 0 0 2px #fff;border-radius:999px;min-height:44px;display:inline-flex;align-items:center;padding:0 18px;font-weight:700;white-space:nowrap;font-family:var(--font-display);font-size:14px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.vote-bar .go:active{background:var(--yellow-press)}.vote-bar .go[disabled]{box-shadow:none;background:var(--disabled-bg);color:var(--ink-soft);cursor:default}.vote-bar .hint{color:var(--yellow);font-weight:700}.vote-bar .hint[data-urgent]{background:var(--yellow);color:var(--paper-ink);border-radius:999px;padding:1px 8px}.activity-page{position:relative;z-index:2;background-color:var(--night);background-image:conic-gradient(var(--night-2) 25%,transparent 0 50%,var(--night-2) 0 75%,transparent 0);background-size:88px 88px;background-position:center top;border-top:3px solid var(--lilac);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}.sec-title{align-self:center;min-width:min(100%,260px);text-align:center;font-size:clamp(26px,7vw,34px);color:var(--violet);background:var(--yellow);padding:2px 32px;border:4px solid #fff;border-radius:999px;box-shadow:0 0 0 3px var(--paper-ink),0 6px 0 3px var(--paper-ink);margin-bottom:6px}.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;border:3px solid var(--paper-ink);background:#fff;color:var(--paper-ink);box-shadow:0 5px color-mix(in srgb,var(--abyss) 55%,transparent)}.entry-photo{position:relative;border-bottom:3px solid var(--paper-ink);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:var(--paper-tint);font-family:var(--font-display);font-size:13px;color:var(--ink-soft)}.entry-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}.entry-no{align-self:flex-start;background:var(--yellow);color:var(--paper-ink);border:2px solid var(--paper-ink);font-family:var(--font-display);font-size:14px;font-weight:700;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}.entries-error{display:flex;flex-direction:column;align-items:center;gap:16px}.entries-error p{margin:0}.retry-btn{min-height:44px;padding:0 28px;border:2px solid var(--paper-ink);border-radius:999px;font:inherit;font-weight:700;font-size:15px;background:var(--yellow);color:var(--paper-ink);cursor:pointer}.retry-btn[disabled]{cursor:progress}.vote-btn{margin-top:6px;min-height:48px;border:2px solid var(--paper-ink);border-radius:999px;padding:0 8px;font:inherit;font-weight:700;font-size:15px;background:var(--violet);color:#fff;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(hover:hover){.vote-btn:not([disabled],[aria-disabled=true]):hover{background:var(--violet-hover)}.entry.mine .vote-btn:not([disabled],[aria-disabled=true]):hover{background:var(--yellow-hover)}}.vote-btn:not([disabled],[aria-disabled=true]):active{background:var(--violet-press)}.entry.mine .vote-btn:not([disabled],[aria-disabled=true]):active{background:var(--yellow-press)}.entry :focus-visible{outline-color:var(--paper-ink);outline-offset:2px}.vote-btn[disabled]{border-color:var(--disabled-line);background:var(--disabled-bg);color:var(--ink-soft);cursor:default}.vote-btn[aria-disabled=true]{cursor:default}.entry.mine{border-color:var(--coral);box-shadow:0 0 0 3px var(--yellow),0 5px 0 3px color-mix(in srgb,var(--abyss) 55%,transparent)}.entry.mine .entry-photo{border-bottom-color:var(--coral)}.entry.mine .entry-no{background:var(--coral)}.mine-badge{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:4px;padding:2px 10px 2px 6px;border-radius:999px;background:var(--yellow);color:var(--paper-ink);border:2px solid var(--paper-ink);font-family:var(--font-display);font-size:13px;font-weight:700;line-height:1.6;box-shadow:0 2px 8px color-mix(in srgb,var(--paper-ink) 35%,transparent)}.mine-badge svg{width:16px;height:16px;flex:none}.entry.mine .vote-btn{border-color:var(--paper-ink);background:var(--yellow);color:var(--paper-ink)}.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:var(--ok-ink);font-weight:700;padding:8px 20px;border:3px solid var(--paper-ink);border-radius:999px;box-shadow:0 0 0 3px #fff,0 6px 16px color-mix(in srgb,var(--abyss) 45%,transparent);text-align:center}.toast[data-kind=error]{background:var(--pink);color:var(--pink-ink)}.sheet-back{position:fixed;inset:0;z-index:60;display:grid;align-items:end;justify-items:center;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--abyss) 68%,transparent)}.sheet{width:100%;max-width:420px;max-height:calc(100svh - 32px);overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:22px;border-radius:24px;border:4px solid var(--paper-ink);background:#fff;color:var(--paper-ink);box-shadow:0 0 0 3px var(--lilac)}.sheet :focus-visible{outline-color:var(--paper-ink);outline-offset:2px}.sheet h3{margin:0;align-self:center;font-size:21px;color:var(--violet);background:var(--yellow);border:3px solid var(--paper-ink);border-radius:999px;padding:2px 24px;text-align:center}.sheet p{margin:0;font-size:15px;color:var(--ink-soft)}.sheet .sheet-left{font-weight:700;color:var(--paper-ink)}.sheet .sheet-error{font-weight:700;color:var(--danger)}.sheet-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.sheet-list li{display:flex;align-items:center;gap:10px;font-weight:700;overflow-wrap:anywhere}.sheet-list img,.sheet-thumb-empty{width:44px;height:55px;flex:none;border-radius:8px;border:2px solid var(--paper-ink);object-fit:cover;background:var(--paper-tint)}.sheet .row{display:flex;gap:10px}.sheet .row button{flex:1;min-height:48px;border:2px solid var(--paper-ink);border-radius:999px;font:inherit;font-weight:700;cursor:pointer;touch-action:manipulation}.sheet .cancel{background:#fff;color:var(--paper-ink)}.sheet .confirm{background:var(--yellow);color:var(--paper-ink);box-shadow:0 3px 0 var(--paper-ink)}.sheet .row button[disabled]{cursor:default;opacity:.7}
