.join[data-v-2a13e869]{min-height:100%;background:var(--color-bg);display:flex;flex-direction:column;padding:80px 24px 32px;gap:24px}.join__state[data-v-2a13e869]{margin:auto;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:0 16px}.join__state-icon[data-v-2a13e869]{font-size:40px}.join__state-title[data-v-2a13e869]{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--color-text)}.join__state-text[data-v-2a13e869]{font-size:13px;color:var(--color-text-muted);line-height:1.5;max-width:280px}.join__spinner[data-v-2a13e869]{width:28px;height:28px;border-radius:50%;border:3px solid var(--color-border);border-top-color:var(--color-primary);animation:spin-2a13e869 .9s linear infinite}@keyframes spin-2a13e869{to{transform:rotate(360deg)}}.join__header[data-v-2a13e869]{text-align:left}.join__eyebrow[data-v-2a13e869]{font-size:11px;font-weight:600;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.join__restaurant[data-v-2a13e869]{font-family:var(--font-display);font-size:28px;font-weight:700;color:var(--color-text);line-height:1.15}.join__restaurant-ja[data-v-2a13e869]{font-family:var(--font-ja);font-size:14px;color:var(--color-text-muted);margin-top:4px}.join__host-card[data-v-2a13e869]{display:flex;gap:14px;padding:16px;background:var(--color-white);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.join__host-avatar[data-v-2a13e869]{position:relative;width:48px;height:48px;border-radius:50%;background:var(--color-light-blue);color:var(--color-white);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;flex-shrink:0}.join__host-crown[data-v-2a13e869]{position:absolute;top:-10px;right:-6px;font-size:14px;color:var(--color-gold)}.join__host-details[data-v-2a13e869]{display:flex;flex-direction:column;justify-content:center;gap:2px}.join__host-label[data-v-2a13e869]{font-size:11px;font-weight:600;color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase}.join__host-name[data-v-2a13e869]{font-size:16px;font-weight:700;color:var(--color-text);font-family:var(--font-display)}.join__host-meta[data-v-2a13e869]{font-size:12px;color:var(--color-text-muted)}.join__form[data-v-2a13e869]{display:flex;flex-direction:column;gap:10px}.join__field-label[data-v-2a13e869]{font-size:12px;font-weight:600;color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase}.join__input[data-v-2a13e869]{height:48px;padding:0 14px;border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-white);font-size:16px;font-family:var(--font-body);color:var(--color-text);outline:none;transition:border-color .2s ease}.join__input[data-v-2a13e869]:focus{border-color:var(--color-primary)}.join__error[data-v-2a13e869]{font-size:12px;color:#c0392b}.join__submit[data-v-2a13e869]{height:52px;margin-top:8px;background:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-lg);font-family:var(--font-body);font-size:15px;font-weight:600;cursor:pointer;transition:background .2s ease,opacity .2s ease}.join__submit[data-v-2a13e869]:hover:not(:disabled){background:var(--color-secondary)}.join__submit[data-v-2a13e869]:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:default}.join__hint[data-v-2a13e869]{font-size:11px;color:var(--color-text-muted);text-align:center;line-height:1.5;margin-top:4px}.join__reconnect-hint[data-v-2a13e869]{font-size:12px;font-weight:600;color:var(--color-gold);text-align:center;letter-spacing:.02em}.app-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:linear-gradient(160deg,#0f1923,#1c2833 60%,#0f1923)}.phone-frame{width:390px;height:844px;background:var(--color-bg);border-radius:48px;border:8px solid #1c2833;box-shadow:0 0 0 1px #ffffff0f,0 32px 80px #0009,inset 0 1px #ffffff14;overflow:hidden;position:relative}.phone-inner{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}@media(max-width:480px){.app-wrapper{padding:0;align-items:flex-start;background:var(--color-bg);min-height:100dvh}.phone-frame{width:100%;height:100dvh;border-radius:0;border:none;box-shadow:none}}.step-container{position:relative;flex:1;overflow:hidden;min-height:0}.overlay-container{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:200}.overlay-container>*{pointer-events:auto}.step-view{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.restoring-shell{display:flex;align-items:center;justify-content:center;color:#ffffff80;font-size:13px}.reset-btn{position:absolute;top:16px;left:16px;z-index:100;background:#1c2833bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;padding:6px 12px;font-size:11px;font-weight:600;color:#ffffffb3;letter-spacing:.03em;border:none;cursor:pointer;transition:color .2s ease;font-family:var(--font-body)}.reset-btn:hover{color:#fffffff2}.slide-forward-enter-active,.slide-forward-leave-active,.slide-back-enter-active,.slide-back-leave-active{transition:transform .35s cubic-bezier(.4,0,.2,1)}.slide-forward-enter-from{transform:translate(100%)}.slide-forward-leave-to,.slide-back-enter-from{transform:translate(-100%)}.slide-back-leave-to{transform:translate(100%)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #2980b9;--color-secondary: #3498db;--color-light-blue: #5dade2;--color-teal: #85c1ae;--color-gold: #f7dc6f;--color-text: #1c2833;--color-text-muted: #7f8c8d;--color-bg: #f8f9fa;--color-white: #ffffff;--color-border: #e8ecef;--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--font-ja: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 28px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .16)}html,body{height:100%;font-family:var(--font-body);color:var(--color-text);background:#1c2833;-webkit-font-smoothing:antialiased}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none}input{font-family:var(--font-body)}
