:root{--navy: #205da0;--ink: #383635;--pink: #f8cbcd;--check-blue: #2a8ac9;--tile: clamp(7px, 2.2vw, 11px);--col: 480px;--col-w: min( calc(100vw - 40px) , var(--col));--bottle-w: min(86vw, 413px);--badge-w: min(calc(var(--col-w) * .42), 209px);--font: "Yuanti TC", "Yuanti SC", "圓體-繁", "Heiti TC", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;min-height:100dvh;font-family:var(--font);-webkit-text-size-adjust:100%;background-image:linear-gradient(90deg,#ffffff1f,#fff0 45%,#28326e12),linear-gradient(180deg,#e9bdc7 0%,#d7b8c9 15%,#c1b4cd 30%,#b0b2d0 45%,#99aed3 60%,#86a9d3 72%,#6a9fd1 85%,#3d8ec9 95%,var(--check-blue) 100%);background-attachment:fixed}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.brand{padding:max(20px,env(safe-area-inset-top)) 0 0;text-align:center}.brand__logo{width:min(82.7%,397px);height:auto;display:inline-block}.brand:after{content:"";display:block;margin:28px 0 0;border-bottom:1.5px solid rgba(255,255,255,.9)}.stage{flex:1;display:flex;flex-direction:column;padding:0 20px}.screen{display:none;flex:1;flex-direction:column;align-items:center;width:100%;max-width:var(--col);margin:0 auto;padding:0 0 28px}.screen.is-active{display:flex}.badge{margin:0;display:grid;place-items:center;width:var(--badge-w);aspect-ratio:209 / 46;background:#fff;color:var(--navy);font-size:calc(var(--badge-w) * .18);font-weight:900;letter-spacing:.06em;line-height:1}.badge--cjk{font-size:calc(var(--badge-w) * .155)}.headline{margin:26px 0 0;color:var(--navy);font-size:22px;font-weight:700;line-height:1.6;text-align:center;letter-spacing:.02em}.field{margin-top:34px;width:100%;text-align:center}.field__label{margin:0;color:var(--ink);font-size:21px;font-weight:800;letter-spacing:.04em}.field__hint{margin:6px 0 0;color:var(--navy);font-size:13px;font-weight:700;letter-spacing:.02em}.field__input{margin-top:18px;width:min(100%,320px);height:60px;padding:0 22px;border:0;border-radius:999px;background:#fff;color:var(--ink);font-size:18px;font-family:inherit;font-weight:700;text-align:center;outline:none}.field__input:focus-visible{box-shadow:0 0 0 3px #205da059}.field__error{margin:10px 0 0;min-height:20px;color:#fff;font-size:14px;font-weight:700;text-shadow:0 1px 2px rgba(32,93,160,.45)}.field__input.is-shaking{animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}@media (prefers-reduced-motion: reduce){.field__input.is-shaking{animation:none}}.btn{margin-top:auto;min-height:44px;min-width:120px;padding:10px 30px;border:2.5px solid #fff;border-radius:6px;background:transparent;color:#fff;font-size:17px;font-family:inherit;font-weight:800;letter-spacing:.14em;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn:active{background:#ffffff2e}.btn:disabled{opacity:.55;cursor:default}.bottle{position:relative;margin-top:30px;width:var(--bottle-w)}.bottle__img{width:100%;height:auto;display:block}.bottle__wish,.bottle__name{position:absolute;transform:translate(-50%,-50%) rotate(-5.55deg);white-space:nowrap;font-weight:800;line-height:1}.bottle__wish{left:36.4%;top:55.8%;color:var(--navy);font-size:calc(var(--bottle-w) * .081);letter-spacing:.02em}.bottle__name{left:44.9%;top:74.8%;color:var(--ink);font-size:calc(var(--bottle-w) * .064);letter-spacing:.02em}.thanks{margin:30px 0 0;color:#fff;font-size:22px;font-weight:800;letter-spacing:.06em}.thanks__sub{margin:10px 0 0;color:#fff;font-size:14px;font-weight:700;letter-spacing:.04em}.again{margin-top:auto;padding-top:24px;display:flex;flex-direction:column;align-items:center;min-height:44px}.again__countdown{margin:0;color:#fff;font-size:14px;font-weight:700;opacity:.9}.btn--again{margin-top:0}.dev-via{position:fixed;left:8px;bottom:8px;z-index:9;padding:5px 10px;border-radius:4px;background:#1b7f4b;color:#fff;font-size:12px;font-weight:700;font-family:ui-monospace,monospace;pointer-events:none}.dev-via[data-backend=B]{background:#b45309}.foot{margin-top:auto}.foot__checker{height:calc(var(--tile) * 2);background-image:conic-gradient(var(--check-blue) 25%,var(--pink) 0 50%,var(--check-blue) 0 75%,var(--pink) 0);background-size:calc(var(--tile) * 2) calc(var(--tile) * 2)}.foot__bar{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--pink);color:var(--navy);font-size:14px;font-weight:900;letter-spacing:.18em;text-align:center}
