:root{--yellow:#ffd43b;--purple:#3b216f;--purple-dark:#29134f;--blue:#1767b0;--ink:#242033;--muted:#686274;--surface:#fff;--soft:#f8f5ff;--border:#ded9e8;--error:#b42318;--success:#147a46;--shadow:0 14px 40px rgba(48,28,82,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fbfaff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;line-height:1.65}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:99;background:#fff;padding:.7rem 1rem}.skip-link:focus{top:1rem}.hero picture,.hero img{display:block;width:100%}.hero img{height:auto}.hero-fallback{min-height:31.25vw;padding:5vw 8vw;background:linear-gradient(115deg,var(--yellow),#fff3a4 50%,#d7ccff);color:var(--purple)}.hero-fallback p{font-weight:800;margin:0}.hero-fallback h1{font-size:clamp(2rem,5vw,5rem);line-height:1.15;margin:.3em 0}.shell{width:min(1024px,calc(100% - 40px));margin-inline:auto}.mock-notice{margin-top:1rem;background:#fff3bf;border:1px solid #e2be21;border-radius:12px;color:#513f00;padding:.75rem 1rem}.intro{text-align:center;padding:3.4rem 1rem 2.2rem}.intro h2,.info-section h2{margin:.15rem 0 .5rem}.eyebrow{color:var(--purple);font-size:.88rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.redeem{background:var(--surface);border:1px solid #eee8f6;border-radius:24px;box-shadow:var(--shadow);margin-bottom:4rem;overflow:hidden}.stepper{background:var(--purple);color:#fff;padding:1.2rem 2rem}.step-list{display:grid;grid-template-columns:repeat(5,1fr);list-style:none;margin:0;padding:0}.step-list li{display:flex;align-items:center;gap:.5rem;color:#cfc4e9;font-size:.88rem;position:relative}.step-list li:not(:last-child)::after{content:"";height:1px;background:#6b5592;position:absolute;left:calc(50% + 2rem);right:1rem}.step-list span{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid #8f7bac;border-radius:50%;font-weight:800}.step-list li.active,.step-list li.complete{color:#fff}.step-list li.active span{background:var(--yellow);border-color:var(--yellow);color:var(--purple)}.step-list li.complete span{background:#fff;color:var(--purple)}.step-mobile{display:none;margin:0;font-weight:800}.step-panel{padding:clamp(1.5rem,5vw,3.5rem);max-width:820px;margin:auto}.step-panel h2{font-size:clamp(1.5rem,3vw,2rem);line-height:1.3;margin:.2rem 0 1.5rem}.field{margin-bottom:1.35rem}.field label{display:block;font-weight:750;margin-bottom:.45rem}.optional{font-size:.8rem;color:var(--muted);font-weight:400}input,textarea{width:100%;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:16px;padding:.85rem .95rem;transition:.18s}input:focus,textarea:focus{border-color:var(--purple);outline:3px solid rgba(59,33,111,.14)}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--error)}.help{font-size:.88rem;color:var(--muted);margin:.35rem 0 0}.field-error{min-height:1.4em;color:var(--error);font-size:.9rem;font-weight:650;margin:.25rem 0 0}.actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.6rem}.actions.end{justify-content:flex-end}.button{border:0;border-radius:999px;cursor:pointer;font:inherit;font-weight:800;min-height:48px;padding:.75rem 1.6rem;transition:.18s}.button.primary{background:var(--purple);color:#fff}.button.primary:hover:not(:disabled){background:var(--purple-dark);transform:translateY(-1px)}.button.secondary{background:#eee9f6;color:var(--purple)}.button:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.button:disabled{cursor:not-allowed;opacity:.55}.message{margin:1.5rem clamp(1.5rem,5vw,3.5rem) 0;padding:1rem;border-radius:10px}.message.error{background:#fff0ee;border:1px solid #ffc5bf;color:var(--error)}.message p{margin:.15rem 0}.styles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.style-card{border:2px solid var(--border);border-radius:16px;padding:1rem;text-align:center;transition:.18s}.style-card.selected{border-color:var(--purple);box-shadow:0 0 0 3px rgba(59,33,111,.1)}.style-card.sold-out{opacity:.65}.style-image{aspect-ratio:1/1;width:100%;object-fit:contain;border-radius:10px;background:var(--soft)}.style-card h3{margin:.75rem 0 .3rem}.status{display:inline-block;border-radius:999px;background:#e4f5eb;color:var(--success);font-size:.8rem;font-weight:800;padding:.2rem .65rem;margin-bottom:.75rem}.sold-out .status{background:#eee;color:#555}.loading-state{text-align:center;padding:2rem;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.form-grid .full{grid-column:1/-1}.consent{display:flex;align-items:flex-start;gap:.7rem;background:var(--soft);border-radius:12px;padding:1rem;font-size:.9rem}.consent input{width:1.2rem;height:1.2rem;flex:0 0 auto;margin:.25rem 0 0}.summary-card{background:var(--soft);border-radius:14px;padding:1.2rem 1.35rem;margin-top:1.5rem}.summary-card h3{margin-top:0}.summary-card dl{display:grid;grid-template-columns:9rem 1fr;margin:0}.summary-card dt,.summary-card dd{padding:.38rem 0;border-bottom:1px solid #e6e0ed}.summary-card dt{font-weight:750}.summary-card dd{margin:0;overflow-wrap:anywhere}.completion{text-align:center}.success-icon{display:grid;place-items:center;width:72px;height:72px;margin:auto;border-radius:50%;background:#e1f5e9;color:var(--success);font-size:2.5rem;font-weight:900}.completion .summary-card{text-align:left}.notice{background:#fff8d7;padding:.8rem;border-radius:10px}.info-section{background:#fff;border:1px solid #eee8f6;border-radius:16px;margin-bottom:1.2rem;padding:1.5rem 2rem}.info-section summary{cursor:pointer}.info-section summary h2{display:inline;font-size:1.3rem}.info-section li{margin-bottom:.4rem}footer{background:var(--purple-dark);color:#fff;margin-top:4rem;padding:2.5rem 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr;gap:2rem}footer h2{font-size:1.1rem}footer a{color:#fff6a8}
@media(max-width:767px){.shell{width:min(100% - 24px,1024px)}.hero-fallback{min-height:66.67vw;padding:11vw 7vw}.intro{padding:2rem .4rem 1.3rem}.redeem{border-radius:16px}.stepper{padding:.8rem 1.2rem}.step-list{display:none}.step-mobile{display:block}.step-panel{padding:1.5rem 1.1rem}.styles-grid,.form-grid,.footer-grid{grid-template-columns:1fr}.actions{flex-direction:column-reverse}.actions.end{display:block}.button{width:100%}.summary-card dl{grid-template-columns:1fr}.summary-card dt{border-bottom:0;padding-bottom:0}.summary-card dd{padding-top:0}.info-section{padding:1.2rem}.info-section details:not([open]) ol,.info-section details:not([open]) p{display:none}footer{margin-top:2.5rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
