*,:before,:after{box-sizing:border-box}:root{--color-bg:#f7f4ef;--color-card:#fff;--color-primary:#8b1a1a;--color-primary-hover:#a82828;--color-gold:#b8962e;--color-text:#2c2420;--color-muted:#8a8078;--radius:12px;--shadow:0 2px 16px #2c242014;color:var(--color-text);background:var(--color-bg);font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;line-height:1.5}body{min-height:100dvh;margin:0}#app{min-height:100dvh}a{color:var(--color-primary);text-decoration:none}.page{max-width:720px;margin:0 auto;padding:2rem 1.25rem 4rem}.header{text-align:center;margin-bottom:2rem}.header h1{color:var(--color-primary);margin:0 0 .5rem;font-size:1.75rem;font-weight:600}.subtitle{color:var(--color-muted);margin:0;font-size:.95rem}.card{background:var(--color-card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.25rem;padding:1.5rem}.card h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.card-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.card-head h2{flex-shrink:0;margin:0}.head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.4rem;display:flex}.bg-row{flex-wrap:wrap;gap:1.25rem;display:flex}.bg-preview-wrap{border:1px solid #e8e2da;border-radius:8px;flex-shrink:0;width:120px;overflow:hidden}.bg-preview{aspect-ratio:750/1334;object-fit:cover;width:100%;display:block}.bg-actions{flex-direction:column;flex:1;justify-content:center;gap:.75rem;min-width:200px;display:flex}.hint{color:var(--color-muted);margin:0;font-size:.82rem;line-height:1.5}.hint.warn{color:#c45c26}.guest-list{flex-direction:column;gap:.75rem;display:flex}.guest-row{align-items:center;gap:.6rem;display:flex}.guest-index{text-align:center;width:1.5rem;color:var(--color-muted);flex-shrink:0;font-size:.85rem}.name-input{flex:1;min-width:0}.input{background:#faf8f5;border:1px solid #e0d8cf;border-radius:8px;outline:none;padding:.55rem .75rem;font-size:.95rem;transition:border-color .15s}.input:focus{border-color:var(--color-primary)}.gender-group{flex-shrink:0;gap:.25rem;display:flex}.gender-option{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #e0d8cf;border-radius:8px;align-items:center;gap:.25rem;padding:.45rem .6rem;font-size:.85rem;transition:all .15s;display:flex}.gender-option:has(input:checked){border-color:var(--color-primary);color:var(--color-primary);background:#fdf5f5}.gender-option input{display:none}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.55rem 1.1rem;font-family:inherit;font-size:.9rem;transition:background .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{color:var(--color-text);cursor:pointer;background:#f0ebe4}.btn-secondary:hover{background:#e8e0d6}.btn-ghost{color:var(--color-muted);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--color-primary)}.btn-sm{padding:.4rem .85rem;font-size:.85rem}.btn-icon{padding:.35rem .55rem;font-size:1.1rem;line-height:1}.link-list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.link-item{background:#faf8f5;border:1px solid #ebe5dd;border-radius:8px;padding:1rem}.link-info{align-items:baseline;gap:.5rem;margin-bottom:.6rem;display:flex}.link-info strong{font-size:1.05rem}.link-info .label{color:var(--color-gold);font-size:.9rem}.link-actions{gap:.5rem;margin-bottom:.5rem;display:flex}.link-url{color:var(--color-muted);word-break:break-all;margin:0;font-size:.75rem;line-height:1.4}@media (width<=520px){.page{padding:1.25rem .875rem 3rem}.header h1{font-size:1.45rem}.subtitle{font-size:.88rem;line-height:1.6}.card{padding:1rem}.card-head{flex-direction:column;align-items:stretch;gap:.65rem}.card-head h2{font-size:1rem;line-height:1.4}.head-actions{justify-content:stretch;gap:.5rem}.head-actions .btn{flex:calc(50% - .25rem);min-width:0;padding-left:.5rem;padding-right:.5rem}.guest-row{flex-wrap:wrap}.name-input{flex:none;width:calc(100% - 2rem)}.gender-group{margin-left:0}.link-actions{flex-wrap:wrap}.link-actions .btn{flex:auto;min-width:4.5rem}}.login-page[data-v-ffdf47dc]{justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;display:flex}.login-card[data-v-ffdf47dc]{width:100%;max-width:360px;box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:12px;padding:2rem 1.5rem}.login-card h1[data-v-ffdf47dc]{color:var(--color-primary);margin:0 0 .5rem;font-size:1.5rem}.hint[data-v-ffdf47dc]{color:var(--color-muted);margin:0 0 1.25rem;font-size:.9rem}.login-card .input[data-v-ffdf47dc]{width:100%;margin-bottom:.75rem}.error[data-v-ffdf47dc]{color:#c45c26;margin:0 0 .75rem;font-size:.85rem}.login-btn[data-v-ffdf47dc]{width:100%}.dialog-mask[data-v-2b78903a]{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.dialog[data-v-2b78903a]{background:#fff;border-radius:12px;width:100%;max-width:360px;padding:1.35rem 1.25rem 1.15rem;box-shadow:0 12px 40px #0000002e}.dialog-title[data-v-2b78903a]{color:var(--color-text);margin:0 0 .65rem;font-size:1.05rem}.dialog-message[data-v-2b78903a]{color:var(--color-muted);margin:0 0 1.15rem;font-size:.92rem;line-height:1.55}.dialog-actions[data-v-2b78903a]{justify-content:flex-end;gap:.5rem;display:flex}.danger-btn[data-v-2b78903a]{background:#c45c26}.danger-btn[data-v-2b78903a]:hover:not(:disabled){background:#a8481a}.page-header[data-v-d7b47535]{text-align:center;margin-bottom:1.5rem}.header-top[data-v-d7b47535]{justify-content:space-between;align-items:center;min-height:2rem;margin-bottom:.75rem;display:flex}.back-btn[data-v-d7b47535],.logout-btn[data-v-d7b47535]{font-size:.85rem}.page-header h1[data-v-d7b47535]{color:var(--color-primary);margin:0 0 .4rem;font-size:1.6rem;font-weight:600}.subtitle[data-v-d7b47535]{color:var(--color-muted);margin:0;font-size:.9rem}.invitation-list[data-v-087ca4c4]{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex;position:relative}.invitation-item[data-v-087ca4c4]{background:#faf8f5;border:1px solid #ebe5dd;border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.list-leave-active[data-v-087ca4c4]{transition:opacity .35s,transform .35s,max-height .35s,margin .35s;overflow:hidden}.list-leave-to[data-v-087ca4c4]{opacity:0;max-height:0;margin-bottom:-.6rem;transform:translate(24px)scale(.96)}.list-move[data-v-087ca4c4]{transition:transform .35s}.item-main[data-v-087ca4c4]{flex:1;min-width:0}.item-title[data-v-087ca4c4]{text-overflow:ellipsis;white-space:nowrap;margin:0 0 .25rem;font-weight:500;overflow:hidden}.item-meta[data-v-087ca4c4]{color:var(--color-muted);margin:0;font-size:.8rem}.item-actions[data-v-087ca4c4]{flex-wrap:wrap;flex-shrink:0;gap:.35rem;display:flex}.danger[data-v-087ca4c4]{color:#c45c26}@media (width<=520px){.invitation-item[data-v-087ca4c4]{flex-direction:column;align-items:stretch}.item-actions .btn-settings[data-v-087ca4c4]{display:none}.item-actions .btn[data-v-087ca4c4]{flex:1}}.overlay-text[data-v-06851607]{text-align:center;pointer-events:none;white-space:nowrap;letter-spacing:.12em;text-shadow:0 1px 3px #ffffff59;margin:0;font-weight:700;position:absolute;transform:translate(-50%,-50%)}.overlay-text.preview[data-v-06851607]{opacity:.9}.annotator[data-v-3f6cc42c]{flex-direction:column;gap:.75rem;display:flex}.toolbar-hint[data-v-3f6cc42c]{color:var(--color-muted);margin:0;font-size:.82rem}.font-size-row[data-v-3f6cc42c]{align-items:center;gap:.6rem;display:flex}.font-size-label[data-v-3f6cc42c]{color:var(--color-text);flex-shrink:0;font-size:.85rem}.font-size-range[data-v-3f6cc42c]{accent-color:var(--color-primary);flex:1}.font-size-value[data-v-3f6cc42c]{color:var(--color-muted);text-align:right;min-width:2.8rem;font-size:.82rem}.annotator-canvas[data-v-3f6cc42c]{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;border:2px solid #e0d8cf;border-radius:8px;width:100%;max-width:360px;margin:0 auto;position:relative;overflow:hidden;container-type:inline-size}.canvas-bg[data-v-3f6cc42c]{pointer-events:none;width:100%;height:auto;display:block}.pin[data-v-3f6cc42c]{cursor:grab;z-index:2;background:#fff8e0;border:2px solid #d4af37;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000040}.pin.dragging[data-v-3f6cc42c]{cursor:grabbing}.pin-label[data-v-3f6cc42c]{white-space:nowrap;color:#fff;pointer-events:none;background:#000000a6;border-radius:4px;padding:.15rem .45rem;font-size:.7rem;position:absolute;top:-1.6rem;left:50%;transform:translate(-50%)}@media (width<=520px){.font-size-row[data-v-3f6cc42c]{flex-wrap:wrap}.font-size-range[data-v-3f6cc42c]{order:3;width:100%}.font-size-value[data-v-3f6cc42c]{margin-left:auto}.annotator-canvas[data-v-3f6cc42c]{max-width:100%}}.nav-card[data-v-1bddfe5e]{text-align:center}.nav-link[data-v-1bddfe5e]{color:#fff;text-decoration:none;display:inline-flex}.btn.disabled[data-v-1bddfe5e]{opacity:.6;pointer-events:none}.save-overlay[data-v-0e22a704]{z-index:1000;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom));background:#000000e0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.save-panel[data-v-0e22a704]{flex-direction:column;gap:.75rem;width:100%;max-width:420px;max-height:100%;display:flex}.save-hint[data-v-0e22a704]{text-align:center;color:#f5f0e8;margin:0;font-size:.95rem;font-weight:500}.save-image-wrap[data-v-0e22a704]{-webkit-overflow-scrolling:touch;background:#1a0a0a;border-radius:8px;flex:1;min-height:0;overflow:auto}.save-image[data-v-0e22a704]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:default;width:100%;display:block}.save-close[data-v-0e22a704]{flex-shrink:0;width:100%}.fade-enter-active[data-v-0e22a704],.fade-leave-active[data-v-0e22a704]{transition:opacity .2s}.fade-enter-from[data-v-0e22a704],.fade-leave-to[data-v-0e22a704]{opacity:0}.add-guest-row[data-v-668cc87c]{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.add-guest-row .name-input[data-v-668cc87c]{flex:1;min-width:140px}.link-list[data-v-668cc87c]{position:relative}.link-leave-active[data-v-668cc87c]{transition:opacity .3s,transform .3s,max-height .3s,margin .3s;overflow:hidden}.link-leave-to[data-v-668cc87c]{opacity:0;max-height:0;margin-bottom:-1rem;transform:translate(16px)}.link-move[data-v-668cc87c]{transition:transform .3s}@media (width<=520px){.add-guest-row[data-v-668cc87c]{flex-direction:column;align-items:stretch}.add-guest-row .name-input[data-v-668cc87c],.add-guest-row>.btn[data-v-668cc87c]{width:100%}}.state-page[data-v-69d9ecbf],.error-page[data-v-69d9ecbf]{color:#666;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:100dvh;display:flex}.guest-page[data-v-69d9ecbf]{min-height:100dvh;padding-bottom:calc(4.5rem + env(safe-area-inset-bottom));background:#1a0a0a;position:relative}.fab-download[data-v-69d9ecbf]{right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:20;background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:.7rem 1.15rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:opacity .15s,transform .15s;position:fixed;box-shadow:0 4px 20px #00000059}.fab-download[data-v-69d9ecbf]:hover:not(:disabled){transform:translateY(-1px)}.fab-download[data-v-69d9ecbf]:disabled{opacity:.65;cursor:wait}.invitation[data-v-69d9ecbf]{width:100%;position:relative;container-type:inline-size}.invitation-bg[data-v-69d9ecbf]{width:100%;height:auto;display:block}
