:root{--navy: #1a1a2e;--navy-2: #24243e;--coral: #e94560;--ink: #111827;--muted: #6b7280;--line: #e5e7eb;--bg: #f7f7fb;--ok: #15803d;--warn: #b45309;--touch: 64px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:18px;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}input,textarea{-webkit-user-select:text;user-select:text}button{font:inherit;color:inherit;cursor:pointer}.screen{min-height:100%;display:flex;flex-direction:column}.screen-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:28px 32px 24px}.topbar{display:flex;align-items:center;gap:16px;padding:18px 28px;background:var(--navy);color:#fff}.topbar h1{margin:0;font-size:22px;font-weight:700}.topbar .step{margin-left:auto;opacity:.75;font-size:15px}.actionbar{display:flex;gap:14px;align-items:center;padding:16px 28px calc(16px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}.actionbar .spacer{flex:1}.btn{min-height:var(--touch);padding:0 34px;border:none;border-radius:14px;background:var(--coral);color:#fff;font-size:20px;font-weight:700}.btn:disabled{opacity:.4}.btn-ghost{background:#fff;color:var(--ink);border:2px solid var(--line);font-weight:600}.btn-lg{min-height:84px;font-size:26px;padding:0 56px;border-radius:18px}.field{margin-bottom:26px}.field>label{display:block;font-size:15px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.input{width:100%;min-height:var(--touch);padding:0 18px;border:2px solid var(--line);border-radius:12px;background:#fff;font-size:20px}textarea.input{padding:16px 18px;min-height:120px;line-height:1.5;resize:none}.input:focus{outline:none;border-color:var(--coral)}.chips{display:flex;flex-wrap:wrap;gap:12px}.chip{min-height:56px;padding:0 24px;border:2px solid var(--line);border-radius:999px;background:#fff;font-size:18px;font-weight:600}.chip[aria-pressed=true]{border-color:var(--coral);background:#fff1f3;color:var(--coral)}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px}.cake-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.cake-card{background:#fff;border:2px solid var(--line);border-radius:16px;padding:0;overflow:hidden;text-align:left;width:100%}.cake-card[aria-pressed=true]{border-color:var(--coral)}.cake-card .photo{height:170px;background:#eef0f6;display:flex;align-items:center;justify-content:center;font-size:54px;color:#c7cbd8}.cake-card .photo img{width:100%;height:100%;object-fit:cover}.cake-card .meta{padding:16px 18px 18px}.cake-card .name{font-size:19px;font-weight:700;margin-bottom:4px}.cake-card .rate{color:var(--muted);font-size:16px}.quote{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 24px}.quote .row{display:flex;justify-content:space-between;padding:7px 0;font-size:17px}.quote .row.total{border-top:2px solid var(--line);margin-top:10px;padding-top:14px;font-size:26px;font-weight:800}.quote .muted{color:var(--muted)}.notice{background:#fffbeb;border:1px solid #fde68a;color:var(--warn);border-radius:12px;padding:14px 18px;font-size:16px;line-height:1.5}.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:12px;padding:14px 18px;font-size:16px;line-height:1.5}.attract{height:100%;background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px;padding:40px;text-align:center}.attract h1{font-size:52px;margin:0;font-weight:800;letter-spacing:-1px}.attract p{font-size:22px;margin:0;opacity:.8}.attract-stage{width:min(560px,80vw);height:min(360px,42vh);border-radius:24px;overflow:hidden;position:relative;background:#ffffff0f}.attract-stage img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}.attract-stage img.on{opacity:1}.attract-stage .caption{position:absolute;left:0;right:0;bottom:0;padding:18px 22px;text-align:left;background:linear-gradient(to top,rgba(0,0,0,.65),transparent);font-size:20px;font-weight:700}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.tap-cta{animation:pulse 2.4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.tap-cta{animation:none}.attract-stage img{transition:none}}.pair{height:100%;background:var(--navy);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px;text-align:center}.pair .code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(56px,13vw,128px);font-weight:800;letter-spacing:14px;padding:24px 40px 24px 54px;background:#ffffff14;border-radius:22px}.pair .hint{font-size:20px;opacity:.8;max-width:620px;line-height:1.6}
