:root { --ink: #08090c; --panel: #11141c; --panel-raised: #171b25; --line: #303647; --line-soft: rgba(255, 255, 255, 0.07); --text: #f4f4f5; --muted: #a1a1aa; --faint: #71717a; --accent: #f25b29; --accent-hot: #ff7342; --success: #4ade80; --danger: #fb7185; font-family: "Pretendard Variable", Pretendard, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--text); background: var(--ink); } * { box-sizing: border-box; } html, body { min-height: 100%; margin: 0; } body { background: linear-gradient(var(--line-soft) 1px, transparent 1px), linear-gradient(90deg, var(--line-soft) 1px, transparent 1px), radial-gradient(circle at 72% 18%, rgba(242, 91, 41, 0.13), transparent 34rem), var(--ink); background-size: 40px 40px, 40px 40px, auto, auto; } button, a { font: inherit; } a { color: inherit; } .shell { min-height: 100vh; display: grid; place-items: center; padding: 32px 18px; } .invite-panel { width: min(100%, 720px); overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(145deg, rgba(23, 27, 37, 0.96), rgba(12, 14, 20, 0.98)); box-shadow: 0 28px 90px rgba(0, 0, 0, 0.48), inset 0 1px rgba(255, 255, 255, 0.06); } .brand-row, .copy-block, .token-card, .actions, .support-row, .error { margin-inline: clamp(22px, 7vw, 64px); } .brand-row { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line-soft); } .brand, .protocol, .eyebrow, .token-card dt, .token-card dd { font-family: "JetBrains Mono", "Cascadia Mono", Consolas, monospace; } .brand { color: var(--text); font-size: 14px; font-weight: 800; letter-spacing: 0.16em; text-decoration: none; } .protocol { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; letter-spacing: 0.12em; } .signal { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 12px rgba(74, 222, 128, 0.72); } .route-line { height: 54px; display: grid; grid-template-columns: auto 1fr auto 1fr auto; align-items: center; padding-inline: clamp(22px, 7vw, 64px); background: rgba(0, 0, 0, 0.2); border-bottom: 1px solid var(--line-soft); } .route-node { width: 9px; height: 9px; border: 1px solid var(--line); border-radius: 50%; background: var(--panel); } .route-node--active { border-color: var(--accent-hot); background: var(--accent); box-shadow: 0 0 18px rgba(242, 91, 41, 0.72); } .route-track { height: 1px; background: linear-gradient(90deg, var(--accent), var(--line)); } .copy-block { padding-top: clamp(42px, 8vw, 72px); } .eyebrow { margin: 0 0 16px; color: var(--accent-hot); font-size: 11px; font-weight: 700; letter-spacing: 0.15em; } h1 { max-width: 600px; margin: 0; font-size: clamp(34px, 7.2vw, 60px); font-weight: 790; letter-spacing: -0.045em; line-height: 1.08; text-wrap: balance; } .description { max-width: 590px; margin: 26px 0 0; color: #d4d4d8; font-size: 16px; line-height: 1.72; word-break: keep-all; } .description--en { margin-top: 8px; color: var(--faint); font-size: 13px; } .token-card { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 38px; padding: 1px; border: 1px solid var(--line); border-radius: 10px; background: var(--line); overflow: hidden; } .token-card div { min-width: 0; padding: 18px; background: var(--panel-raised); } .token-card dt { color: var(--faint); font-size: 9px; letter-spacing: 0.13em; } .token-card dd { margin: 8px 0 0; overflow: hidden; color: var(--text); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; } .token-card dd[data-state="valid"] { color: var(--success); } .token-card dd[data-state="invalid"] { color: var(--danger); } .error { margin-top: 18px; padding: 13px 14px; border: 1px solid rgba(251, 113, 133, 0.35); border-radius: 8px; color: #fecdd3; background: rgba(251, 113, 133, 0.08); font-size: 14px; line-height: 1.5; } .actions { display: grid; grid-template-columns: 1.25fr 1fr; gap: 12px; margin-top: 24px; } .button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 8px; padding: 0 18px; font-weight: 750; text-align: center; text-decoration: none; cursor: pointer; transition: border-color 160ms ease, background 160ms ease, color 160ms ease, transform 160ms ease; } .button--primary { color: #fff; background: var(--accent); box-shadow: 0 10px 30px rgba(242, 91, 41, 0.2); } .button--primary:hover { background: var(--accent-hot); transform: translateY(-1px); } .button--secondary { color: var(--text); border-color: var(--line); background: rgba(255, 255, 255, 0.035); } .button--secondary:hover { border-color: #535f7f; background: rgba(255, 255, 255, 0.06); } .button[aria-disabled="true"], .button:disabled { opacity: 0.42; cursor: not-allowed; pointer-events: none; transform: none; } .button:focus-visible, .brand:focus-visible, .support-row a:focus-visible { outline: 3px solid rgba(255, 115, 66, 0.78); outline-offset: 3px; } .support-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 38px; padding-block: 22px 28px; border-top: 1px solid var(--line-soft); color: var(--faint); font-size: 13px; } .support-row a { color: #d4d4d8; font-weight: 650; text-underline-offset: 4px; } @media (max-width: 560px) { .shell { align-items: start; padding: 12px; } .invite-panel { border-radius: 12px; } .brand-row { min-height: 66px; } .protocol { font-size: 8px; } .token-card, .actions { grid-template-columns: 1fr; } .support-row { align-items: flex-start; flex-direction: column; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; } }