.sp{outline:none;max-width:42rem;margin:0 auto}.sp__top{grid-template-columns:1fr auto;align-items:center;gap:.75rem;margin-bottom:1.1rem;display:grid}.sp__progress{gap:.28rem;min-width:0;display:flex}.sp-tick{background:#ffffff1f;border-radius:999px;flex:1;height:3px;transition:background .25s,transform .25s}.sp-tick.is-done{background:color-mix(in oklab, var(--color-accent) 70%, white)}.sp-tick.is-current{background:var(--color-accent);transform:scaleY(1.6)}.sp__count{color:var(--color-muted);font-variant-numeric:tabular-nums;margin:0;font-size:.78rem}.sp__stage{background:radial-gradient(80% 50% at 50% 0,#e85d7514,#0000 55%),linear-gradient(#1a141c 0%,#120e14 100%);border:1px solid #ffffff14;border-radius:1.25rem;min-height:min(72vh,640px);position:relative;overflow:hidden}.sp__stage[hidden],.sp__controls[hidden]{display:none}.sp-page{opacity:0;pointer-events:none;place-items:center;padding:1.25rem 1rem 1.5rem;transition:opacity .32s,transform .38s cubic-bezier(.22,1,.36,1);display:grid;position:absolute;inset:0;transform:translate(18px)scale(.985)}.sp-page.is-active{opacity:1;pointer-events:auto;z-index:1;transform:translate(0)scale(1)}.sp-text{text-align:center;max-width:22rem}.sp-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .75rem;font-size:.7rem}.sp-body{color:#f4eaee;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,3.6vw,1.75rem);line-height:1.45}.sp-hint{color:#9ca3afd9;margin:1.5rem 0 0;font-size:.75rem}.sp-snap{width:min(100%,280px)}.sp-phone__bezel{aspect-ratio:9/16;background:#0a080b;border:1px solid #ffffff29;border-radius:1.4rem;place-items:center;display:grid;position:relative;overflow:hidden;box-shadow:0 22px 50px #00000080}.sp-phone__bezel img{object-fit:cover;user-select:none;width:100%;height:100%;display:block}.sp-phone__missing{color:var(--color-muted);font-size:.85rem}.sp-line{text-align:center;color:#e6d5da;margin:.9rem 0 0;font-size:.95rem;line-height:1.4}.sp-chat{width:min(100%,340px);height:min(68vh,560px)}.sp-im{background:#000;border:1px solid #ffffff1f;border-radius:1.35rem;flex-direction:column;height:100%;display:flex;overflow:hidden;box-shadow:0 22px 50px #00000080}.sp-im__header{background:#1c1c1ef5;border-bottom:1px solid #ffffff14;align-items:center;gap:.7rem;padding:.85rem 1rem;display:flex}.sp-im__avatar{color:#fff;background:linear-gradient(145deg,#5ac8fa,#007aff);border-radius:999px;place-items:center;width:2.1rem;height:2.1rem;font-weight:700;display:grid}.sp-im__name{color:#fff;margin:0;font-size:.95rem;font-weight:600}.sp-im__status{color:#8e8e93;margin:.1rem 0 0;font-size:.72rem}.sp-im__thread{flex-direction:column;flex:1;gap:.45rem;padding:.85rem .75rem;display:flex;overflow-y:auto}.sp-bubble{flex-direction:column;max-width:82%;animation:.28s both sp-bubble-in;display:flex}.sp-bubble p{word-wrap:break-word;border-radius:1.15rem;width:fit-content;max-width:100%;margin:0;padding:.55rem .8rem;font-size:.95rem;line-height:1.35}.sp-bubble--you{align-self:flex-end;align-items:flex-end}.sp-bubble--you p{color:#fff;background:#0b84fe;border-bottom-right-radius:.35rem}.sp-bubble--her{align-self:flex-start;align-items:flex-start}.sp-bubble--her p{color:#fff;background:#3a3a3c;border-bottom-left-radius:.35rem}.sp-bubble--them{align-self:flex-start;align-items:flex-start}.sp-bubble--them p{color:#fff;background:#2c2c2e;border:1px solid #ffffff14;border-bottom-left-radius:.35rem}.sp-bubble__who{color:#8e8e93;margin-top:.15rem;margin-left:.35rem;font-size:.65rem}.sp-im__typing{background:#3a3a3c;border-radius:1.1rem;align-self:flex-start;gap:.28rem;width:fit-content;margin:0 .75rem .35rem;padding:.65rem .8rem;display:flex}.sp-im__typing[hidden]{display:none}.sp-im__typing span{background:#c7c7cc;border-radius:999px;width:.4rem;height:.4rem;animation:1.1s ease-in-out infinite sp-typing-dot}.sp-im__typing span:nth-child(2){animation-delay:.15s}.sp-im__typing span:nth-child(3){animation-delay:.3s}.sp-im__hint{text-align:center;color:#8e8e93;margin:0;padding:.55rem .75rem .75rem;font-size:.72rem}.sp__hit{z-index:2;cursor:pointer;background:0 0;border:0;width:28%;position:absolute;top:0;bottom:0}.sp__hit--prev{left:0}.sp__hit--next{right:0}.sp__controls{gap:.65rem;margin-top:1rem;display:flex}.sp__ctrl{color:#fff;cursor:pointer;background:#ffffff08;border:1px solid #ffffff24;border-radius:.65rem;flex:none;min-width:3.25rem;padding:.75rem 1rem;font-weight:600;transition:background .2s,border-color .2s,transform .2s}.sp__ctrl:hover{border-color:#ffffff4d;transform:translateY(-1px)}.sp__ctrl--primary{background:var(--color-accent);color:#120c10;border-color:#0000;flex:1}.sp__end{text-align:center;background:radial-gradient(80% 50% at 50% 0,#e85d7514,#0000 55%),linear-gradient(#1a141c 0%,#120e14 100%);border:1px solid #ffffff1a;border-radius:1.25rem;flex-direction:column;justify-content:center;min-height:min(60vh,520px);padding:1.75rem 1.35rem;display:flex}.sp__end[hidden]{display:none}.sp__end-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .35rem;font-size:.7rem}.sp__end h2{color:#fff;margin:0 0 .5rem;font-size:1.35rem}.sp__end-teaser{max-width:26rem;color:var(--color-muted);margin:0 auto .5rem;line-height:1.45}.sp__end-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1rem;display:flex}.sp-btn{cursor:pointer;border:1px solid #0000;border-radius:.55rem;justify-content:center;align-items:center;padding:.7rem 1.05rem;font-size:.88rem;font-weight:600;text-decoration:none;transition:transform .2s,background .2s,border-color .2s;display:inline-flex}.sp-btn:hover{transform:translateY(-1px)}.sp-btn--solid{background:var(--color-accent);color:#120c10}.sp-btn--ghost{color:#f2e8eb;background:0 0;border-color:#fff3}.sp-empty{text-align:center;color:var(--color-muted);padding:3rem 1rem}@keyframes sp-bubble-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes sp-typing-dot{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.sp-page,.sp-bubble,.sp__ctrl,.sp-btn,.sp-im__typing span{transition:none;animation:none}}
