:root{--color-brand-primary: #2f7d6d;--color-brand-primary-pressed: #256a5d;--color-brand-primary-subtle: #e8f3f0;--color-brand-secondary: #c9a882;--color-brand-secondary-subtle: #f5efe6;--color-text-primary: #1c1c1e;--color-text-secondary: #5c5c64;--color-text-tertiary: #8e8e93;--color-border: #e5e5ea;--color-surface-page: #fafaf8;--color-surface-card: #ffffff;--color-semantic-success: #3a9b7a;--color-semantic-success-subtle: #e8f5ef;--color-semantic-warning: #d97706;--color-semantic-warning-subtle: #fef3e7;--color-semantic-info: #4a90a4;--color-semantic-info-subtle: #e8f3f7;--color-semantic-danger: #c45c5c;--color-semantic-danger-subtle: #fceaea}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--color-surface-page);color:var(--color-text-primary);line-height:1.55;font-size:16px}a{color:var(--color-brand-primary);text-decoration:none}a:hover{text-decoration:underline}.page-nav{display:flex;align-items:center;gap:8px;padding:12px 16px;max-width:640px;margin:0 auto}.page-nav__back{display:inline-flex;align-items:center;gap:4px;font-size:.9375rem;color:var(--color-text-secondary);text-decoration:none}.page-nav__back:hover{color:var(--color-brand-primary);text-decoration:none}.btn-primary{display:block;width:100%;padding:14px 20px;border:none;border-radius:12px;font-size:1rem;font-weight:600;color:#fff;background:var(--color-brand-primary);cursor:pointer;text-align:center;transition:background .15s ease}.btn-primary:hover,.btn-primary:active{background:var(--color-brand-primary-pressed)}.btn-ghost{display:block;width:100%;padding:12px 16px;border:1px solid var(--color-border);border-radius:12px;font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface-card);cursor:pointer;text-align:center}.btn-ghost:hover{border-color:var(--color-brand-primary);color:var(--color-brand-primary)}.btn-link{display:inline-block;padding:8px 0;font-size:.9375rem;color:var(--color-brand-primary);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.form-group{margin-bottom:16px}.form-label{display:block;margin-bottom:6px;font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.form-input,.form-select{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:10px;font-size:1rem;font-family:inherit;background:var(--color-surface-card);color:var(--color-text-primary)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-brand-primary);box-shadow:0 0 0 3px var(--color-brand-primary-subtle)}.form-hint{margin:6px 0 0;font-size:.8125rem;color:var(--color-text-tertiary)}.landing{max-width:420px;margin:0 auto;padding:28px 20px 44px;min-height:100dvh}.landing__brand{font-size:1.5rem;font-weight:700;color:var(--color-brand-primary);text-align:center;margin-bottom:8px}.landing__pitch{margin:0 0 20px;text-align:center;font-size:1rem;line-height:1.55;color:var(--color-text-secondary);padding:14px 12px;border:1px dashed var(--color-border);background:var(--color-surface-card);border-radius:12px}.landing__form{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:12px;padding:14px}.pick-page{max-width:420px;margin:0 auto;padding:8px 16px 36px}.pick-page__title{font-size:1.125rem;font-weight:600;margin:16px 0 4px;text-align:center}.pick-page__sub{font-size:.875rem;color:var(--color-text-secondary);text-align:center;margin:0 0 14px}.pick-step{margin-top:16px}.pick-step__title{margin:0 0 10px;font-size:.9375rem;font-weight:600;color:var(--color-text-secondary)}.pick-step .form-select{margin-top:4px}.scene-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.scene-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100px;padding:14px 10px;border:2px solid var(--color-border);border-radius:12px;background:var(--color-surface-card);cursor:pointer;text-align:center;font-family:inherit;font-size:.875rem;color:var(--color-text-primary);transition:border-color .15s ease,background .15s ease}.scene-card:hover{border-color:var(--color-brand-primary);background:var(--color-brand-primary-subtle)}.scene-card--active{border-color:var(--color-brand-primary);background:var(--color-brand-primary-subtle);box-shadow:inset 0 0 0 1px var(--color-brand-primary)}.scene-card:active{transform:scale(.98)}.scene-card__emoji{font-size:1.5rem;line-height:1;margin-bottom:6px}.scene-card__text{font-weight:500;line-height:1.35}.pick-textarea{width:100%;min-height:108px;padding:12px 14px;border:1px solid var(--color-border);border-radius:10px;font-size:.9375rem;font-family:inherit;line-height:1.45;resize:vertical;background:var(--color-surface-card);color:var(--color-text-primary)}.pick-textarea:focus{outline:none;border-color:var(--color-brand-primary);box-shadow:0 0 0 3px var(--color-brand-primary-subtle)}#btn-next{margin-top:14px}.card-page{padding:8px 16px 32px;max-width:680px;margin:0 auto}.card-actions{margin-top:20px;display:flex;flex-direction:column;gap:10px}.join-page{max-width:420px;margin:0 auto;padding:16px 16px 40px}.join-hero{text-align:center;margin-bottom:20px}.join-hero__title{font-size:1.25rem;font-weight:700;margin:0 0 8px;color:var(--color-text-primary)}.join-hero__sub{font-size:.9375rem;color:var(--color-text-secondary);margin:0}.join-benefits{list-style:none;margin:0 0 24px;padding:0;font-size:.9375rem;color:var(--color-text-primary)}.join-benefits li{padding:6px 0;border-bottom:1px solid var(--color-border)}.join-benefits li:last-child{border-bottom:none}.qr-placeholder{max-width:220px;margin:16px auto;aspect-ratio:1;border:1px solid var(--color-border);border-radius:8px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;color:var(--color-text-tertiary);padding:12px;background:var(--color-surface-page)}.form-error{padding:10px 12px;border-radius:8px;background:var(--color-semantic-danger-subtle);color:var(--color-text-primary);font-size:.875rem;margin-bottom:12px}.form-error[hidden]{display:none}
