/* =====================================================================
   ICR teaser v2 — the 3D layer.
   Perspective stage, auto-play entrance, drifting card artifacts,
   lamplight glow, and a one-pass glass sheen. Sits on top of teaser.css.
   ===================================================================== */
.zoom-stage{perspective:1400px;perspective-origin:50% 42%;}
.zoom-phone{opacity:0;position:relative;z-index:2;will-change:transform,opacity;}

/* ambient lamplight behind the phone */
.t-glow{position:absolute;top:50%;left:50%;width:min(74vw,740px);aspect-ratio:1;transform:translate(-50%,-46%);border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(50% 50% at 50% 50%, rgba(217,176,72,.15), rgba(107,31,35,.07) 55%, transparent 72%);filter:blur(2px);animation:glow-breathe 5.4s var(--ease-soft) infinite;}
html[data-register="evening"] .t-glow{background:radial-gradient(50% 50% at 50% 50%, rgba(217,176,72,.22), rgba(107,31,35,.13) 55%, transparent 72%);}
@keyframes glow-breathe{0%,100%{opacity:.72}50%{opacity:1}}

/* drifting cards — the collection floating in the dark.
   ICR card backs (crest on oxblood) + luminous art faces; no placeholder numbers. */
.t-drift{position:absolute;inset:0;pointer-events:none;z-index:1;}
.t-drift .fc{position:absolute;width:86px;height:120px;border-radius:10px;overflow:hidden;opacity:.9;will-change:transform;box-shadow:0 22px 48px -20px rgba(20,15,10,.65),0 4px 12px -6px rgba(20,15,10,.4);}
.t-drift .fc::after{content:'';position:absolute;inset:0;background:linear-gradient(118deg,transparent 40%,rgba(255,253,246,.13) 50%,transparent 60%);}
.t-drift .fc.back{background:radial-gradient(120% 90% at 50% 20%,#7A2327,#4F1518 72%);border:.5px solid rgba(217,176,72,.38);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;}
.t-drift .fc.back img{width:46%;object-fit:contain;opacity:.92;display:block;}
.t-drift .fc.back b{font-family:var(--ff-display);font-weight:500;font-size:7px;letter-spacing:.3em;padding-left:.3em;color:var(--cream-inv);opacity:.85;}
.t-drift .fc.back i{font-size:4.5px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:rgba(239,233,221,.55);font-style:normal;}
.t-drift .fc.face{border:.5px solid rgba(20,15,10,.3);}
.t-drift .fc.face::before{content:'';position:absolute;inset:0;background:radial-gradient(90% 60% at 50% 30%,rgba(255,255,255,.14),transparent 62%);}
.t-drift .fc.far{filter:blur(1.4px) saturate(.92);opacity:.58;}

/* one-pass glass sheen across the screen after the entrance */
.glass-sheen{position:absolute;inset:0;z-index:95;pointer-events:none;background:linear-gradient(115deg,transparent 42%,rgba(255,253,246,.20) 50%,rgba(255,253,246,.05) 54%,transparent 62%);background-size:260% 100%;background-position:120% 0;background-repeat:no-repeat;}
.glass-sheen.play{animation:sheen-sweep 1.25s cubic-bezier(.22,.61,.36,1) .1s 1 both;}
@keyframes sheen-sweep{from{background-position:120% 0}to{background-position:-140% 0}}

.t-sub{font-family:var(--ff-display);font-style:italic;font-size:15px;color:var(--ash);margin:12px 0 0;}

/* ---------- the Virgil chat (waitlist) ---------- */
.t-chat .inner{gap:16px;}
.chat-head{display:flex;align-items:center;gap:12px;border-bottom:.5px solid rgba(239,233,221,.14);padding-bottom:14px;}
.ch-seal{width:34px;height:34px;border-radius:50%;border:.5px solid rgba(217,176,72,.45);color:#D9B048;font-family:var(--ff-display);font-style:italic;font-weight:500;font-size:17px;display:flex;align-items:center;justify-content:center;flex:0 0 34px;}
.ch-id b{display:block;font-family:var(--ff-display);font-size:17px;font-weight:600;color:#EFE9DD;}
.ch-id i{display:flex;align-items:center;gap:6px;font-family:var(--ff-display);font-style:italic;font-size:12.5px;color:rgba(239,233,221,.5);}
.ch-dot{width:6px;height:6px;border-radius:50%;background:var(--sage);box-shadow:0 0 6px rgba(74,107,62,.8);}
.chat-thread{display:flex;flex-direction:column;gap:10px;min-height:170px;}
.cb{max-width:78%;padding:12px 16px;border-radius:16px;opacity:0;transform:translateY(10px);transition:opacity .38s var(--ease-soft),transform .38s var(--ease-soft);}
.cb.in{opacity:1;transform:none;}
.cb.v{align-self:flex-start;background:rgba(239,233,221,.07);border:.5px solid rgba(239,233,221,.12);border-radius:16px 16px 16px 5px;font-family:var(--ff-display);font-size:16.5px;line-height:1.45;color:#EFE9DD;}
.cb.v em{font-style:italic;color:#D9B048;}
.cb.me{align-self:flex-end;background:#EFE9DD;color:#15110D;border-radius:16px 16px 5px 16px;font-family:var(--ff-display);font-style:italic;font-size:15.5px;}
.cb .no{color:#D9B048;font-style:italic;font-variant-numeric:tabular-nums;}
.cb.me .no{color:var(--oxblood);}
.cb.typing{display:flex;gap:5px;align-items:center;padding:14px 16px;}
.cb.typing s{width:6px;height:6px;border-radius:50%;background:rgba(239,233,221,.55);animation:ty 1.1s ease-in-out infinite;text-decoration:none;}
.cb.typing s:nth-child(2){animation-delay:.15s}
.cb.typing s:nth-child(3){animation-delay:.3s}
@keyframes ty{0%,60%,100%{transform:none;opacity:.45}30%{transform:translateY(-4px);opacity:1}}
.t-chat .chat-form{margin-top:2px;transition:opacity .3s var(--ease-soft);}

@media (max-width: 640px){
  .t-glow{width:120vw;}
  .t-sub{font-size:13px;}
}

@media (prefers-reduced-motion: reduce){
  .t-drift,.t-glow,.glass-sheen{display:none;}
  .zoom-phone{opacity:1;}
}
