@font-face{font-family:Cormorant;src:url('assets/Cormorant.ttf')}@font-face{font-family:GreatVibes;src:url('assets/GreatVibes.ttf')}
:root{--ink:#35445d;--muted:#7d8998;--gold:#b49370;--cream:#f8f5f1;--line:#dfd1c2}*{box-sizing:border-box}body{margin:0;background:#f1eae5;color:var(--ink);font-family:Arial,'Noto Sans TC',sans-serif;line-height:1.7}a{color:inherit}button,input,textarea{font:inherit}button{cursor:pointer}.topbar{background:#35445d;color:#fff;text-align:center;padding:13px 18px;font-size:11px;letter-spacing:.2em}.page{max-width:850px;margin:auto;padding:38px 20px 70px}.brand{text-align:center;margin:0 0 24px}.brand .script{font-family:GreatVibes,cursive;font-size:clamp(45px,9vw,70px);line-height:1.18;margin:4px 0;color:#42516b;font-weight:400}.brand .eyebrow{font-size:10px;letter-spacing:.27em;color:#a28973;margin:0}.frame{position:relative;background:#fcfaf7;border:1px solid #e7dbcf;box-shadow:0 18px 60px #806c5a17;padding:clamp(40px,9vw,92px) clamp(25px,11vw,100px);overflow:hidden}.frame:before{content:'';pointer-events:none;position:absolute;inset:0;background:url('assets/transport-frame-transparent-v3.webp') center/100% 100% no-repeat;opacity:.8}.inner{position:relative;text-align:center;max-width:440px;margin:auto}.subtitle{font-size:10px;letter-spacing:.22em;color:#a58b77;margin:0 0 7px}.heading{font-family:Cormorant,serif;font-size:clamp(38px,9vw,58px);font-weight:400;line-height:1.05;margin:0 0 15px}.description{font-size:14px;color:#7b8898;line-height:1.8;margin:0 auto 25px}.small{font-size:13px;color:#7b8898}.divider{width:55px;height:1px;background:#c9b19a;margin:23px auto}.field{display:block;text-align:left;margin:18px auto}.field span,.label{display:block;text-align:left;font-size:11px;letter-spacing:.12em;color:#728196;margin-bottom:7px}.field input,.field textarea,.row input{width:100%;border:1px solid #d6c9bf;background:#fffdfb;color:#35445d;padding:13px 14px;border-radius:0;outline:none}.field input:focus,.field textarea:focus,.row input:focus{border-color:#93795e;box-shadow:0 0 0 2px #c9b19a33}.button{display:inline-block;border:1px solid #ad9987;background:#fffdfb;color:#35445d;padding:13px 22px;text-decoration:none;letter-spacing:.1em;font-size:11px;transition:background .2s}.button:hover{background:#f2ebe4}.button.primary{background:#35445d;color:#fff;border-color:#35445d}.button.primary:hover{background:#495b76}.button:disabled{opacity:.6;cursor:wait}.buttons{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:18px 0}.status{min-height:1.5em;font-size:13px;color:#916457}.status:empty{min-height:0}.back{display:inline-block;margin-top:30px;font-size:11px;letter-spacing:.14em;text-decoration:none;color:#758294}.qr{display:block;width:min(100%,270px);height:auto;margin:22px auto;background:white;border:12px solid #fff;box-shadow:0 4px 25px #8b7d6c24;image-rendering:pixelated}.guestname{font-family:Cormorant,serif;font-size:31px;margin:5px 0}.table-reveal{padding:18px;border-top:1px solid #e1d4c7;border-bottom:1px solid #e1d4c7;margin:20px 0;color:#50617a}.table-reveal strong{font-family:Cormorant,serif;font-size:42px;display:block;font-weight:400}.login{max-width:360px;margin:auto}.wide{max-width:none}.panel{text-align:left;border-top:1px solid var(--line);margin-top:30px;padding-top:25px}.panel h2{font:32px Cormorant,serif;margin:0 0 12px}.row{border:1px solid #e6dcd2;background:#fffefa;padding:14px;margin:10px 0}.row .row-fields{display:grid;grid-template-columns:2fr 1fr;gap:10px}.row .buttons{justify-content:flex-start;margin-bottom:0}.row .button{padding:8px 11px;letter-spacing:0}.result{background:#f3eee8;padding:18px;margin:20px 0;line-height:1.8}.response{white-space:pre-wrap;overflow-wrap:anywhere;border-bottom:1px solid #e5dbd1;padding:12px 0;font-size:13px}.response strong{font-size:15px}video{display:block;width:100%;max-width:500px;max-height:350px;background:#202b38;margin:12px auto;object-fit:contain}.notice{font-size:12px;color:#7c8996}.admin-frame:before{background-size:100% 650px;background-position:top center;background-repeat:no-repeat}.admin-frame{padding-top:78px}.admin-frame .inner{max-width:640px}input[type=password]{letter-spacing:.08em}[hidden]{display:none!important}@media(max-width:520px){.page{padding:25px 13px 50px}.frame{padding:55px 18%}.frame:before{background-size:100% 100%}.admin-frame{padding:65px 25px 45px}.admin-frame:before{background-size:100% 480px}.heading{font-size:clamp(32px,8vw,40px)}.row .row-fields{grid-template-columns:1fr}.topbar{font-size:9px}.button{padding:12px 16px}}
