*{box-sizing:border-box}body{margin:0;background:#faf9f6;color:#29243b;font:16px/1.6 "Microsoft JhengHei",system-ui,sans-serif}header{height:74px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eae6f1;background:#fffaf9}.brand{font-size:23px;font-weight:850;color:#4d398d;text-decoration:none;letter-spacing:1px}.brand span{font-size:14px;letter-spacing:0;margin-left:8px}.badge{background:#ece7ff;border-radius:30px;font-size:11px;padding:6px 10px;color:#624899}main{max-width:850px;margin:auto;padding:22px 22px 170px}.steps{display:flex;gap:9px;font-size:12px;color:#8f889c;margin:5px 0 30px}.steps span{flex:1;border-top:3px solid #e3dfeb;padding-top:9px}.steps .active{border-color:#7958b4;color:#604491;font-weight:700}.eyebrow{font-size:10px;letter-spacing:2px;color:#8d71b4;font-weight:800}h1{font-size:clamp(25px,6vw,37px);line-height:1.35;letter-spacing:-.7px;margin:8px 0 10px}.sub{color:#81778c;font-size:14px;margin:0 0 24px}label{font-size:13px;font-weight:700;display:block}.chips{display:flex;gap:8px;overflow:auto;padding:9px 0 17px;scrollbar-width:none}button,select{font:inherit}button{cursor:pointer;min-height:44px;border:0}button:disabled{opacity:.45;cursor:default}.chips button{white-space:nowrap;padding:7px 17px;background:white;border:1px solid #e3dbea;border-radius:25px;font-size:13px;color:#796c89}.chips .selected{background:#7252a7;color:white;border-color:#7252a7}.filters{display:flex;gap:12px;background:#f0edf6;padding:13px;border-radius:16px}.filters label{flex:1;color:#786a8c}select{display:block;width:100%;border:0;border-radius:10px;padding:10px;background:white;color:#382d4d;margin-top:5px;min-height:44px}.gallery-title{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.gallery-title h2{font-size:16px}.gallery-title span{font-size:12px;color:#8f849b}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.card{position:relative;text-align:left;background:white;padding:0;border-radius:17px;overflow:hidden;border:2px solid transparent;box-shadow:0 5px 20px #40345308;transition:transform .15s}.card img{width:100%;aspect-ratio:2/3;object-fit:cover;display:block}.card strong{display:block;padding:10px;font-size:13px;font-weight:650;line-height:1.4}.card.selected{border-color:#8659c8;box-shadow:0 0 0 2px #e3d7f4}.card.selected:after{content:'✓';position:absolute;top:8px;right:8px;background:#7652ab;color:white;border-radius:50%;width:27px;height:27px;text-align:center}.selection{display:flex;gap:17px;align-items:center;background:#eee9f6;padding:13px;border-radius:18px}.selection img{width:74px;height:98px;object-fit:cover;border-radius:9px}.selection p{margin:5px 0;color:#7f708e;font-size:12px}.text{background:transparent;color:#7455a3;font-size:14px;padding:7px 0;text-decoration:underline}.upload-zone{margin-top:22px;min-height:240px;border:2px dashed #c5b7d9;border-radius:23px;background:#f5f1fb;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;cursor:pointer}.upload-zone b{display:block;font-size:44px;color:#a58ac7;font-weight:300}.upload-zone small{display:block;font-weight:400;color:#9788a6;margin-top:8px}.upload-zone img{max-height:360px;max-width:100%;object-fit:contain}.note{font-size:12px;color:#8d8297;margin-top:20px}.result-image{display:block;max-width:100%;max-height:65vh;margin:0 auto 18px;border-radius:18px}.wait{text-align:center;padding:55px 20px;background:#f0eafa;border-radius:25px}.wait h2{font-size:18px}.wait p{color:#867295;font-size:13px}.orb{width:76px;height:76px;margin:0 auto 25px;border:5px solid #e0d3f0;border-top-color:#9371c2;border-radius:50%;animation:spin 1.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.receipt{background:#eee8f8;padding:15px;border-radius:15px;margin:15px 0;font-size:16px}.secondary{width:100%;background:#e8ddf5;border-radius:14px;color:#5e4083;margin-bottom:12px;font-weight:700;padding:12px}footer{position:fixed;bottom:0;left:0;right:0;background:#fffefbeF;backdrop-filter:blur(15px);padding:10px max(22px,calc((100vw - 806px)/2)) calc(18px + env(safe-area-inset-bottom));box-shadow:0 -5px 30px #392d5510}#summary{font-size:12px;color:#887891;text-align:center;margin-bottom:8px}#primary{width:100%;background:#7250a6;color:white;border-radius:16px;min-height:55px;font-weight:700;padding:10px 18px;display:flex;justify-content:center;gap:20px}#error,#demo{padding:13px;border-radius:12px;background:#fff0e3;color:#80562c;margin-bottom:15px;font-size:14px}[hidden]{display:none!important}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #b9a1e0;outline-offset:3px}@media(max-width:560px){header{padding:0 18px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}main{padding-left:18px;padding-right:18px}.badge{font-size:10px}.brand{font-size:21px}}@media(prefers-reduced-motion:reduce){.orb{animation:none}}
.host{text-align:center;padding:45px 20px}.host .qr{background:white;border-radius:20px;padding:12px;max-width:90vw;height:auto}.host a{color:#7250a6}

.wait .wait-countdown{font-size:48px;line-height:1.2;font-weight:750;font-variant-numeric:tabular-nums;color:#7250a6;margin:18px 0 10px;letter-spacing:2px}
