/* The host page styles bare h4/p/ul/li, which changed how the component's text
   wrapped and pushed a panel past its window. :where() carries zero specificity,
   so this normalises the subtree without out-ranking any .tr-* rule below. */
.nt-trailer-stage, .nt-trailer-stage *{box-sizing:border-box}
.nt-trailer-stage :where(h1,h2,h3,h4,h5,p,ul,ol,li,figure,table){margin:0;padding:0}
.nt-trailer-stage :where(h1,h2,h3,h4,h5,p,ul,ol,li,span,b,strong,small,td,th){
  font-family:inherit;line-height:1.5;letter-spacing:normal;text-transform:none}
.nt-trailer-stage :where(ul){list-style:disc}
.nt-trailer-stage :where(li){margin:0}

/* ---------- camera viewport ---------- */
  .tr-viewport{
    position:relative;border-radius:3px;overflow:hidden;background:#131316;
    border:1px solid rgba(11,11,13,.18);
    box-shadow:0 40px 90px -38px rgba(48,38,20,.72);
    animation:vpIn .7s ease both;              /* entrance is CSS, never JS */
  }
  @keyframes vpIn{from{opacity:0;transform:translateY(14px) scale(.995)}to{opacity:1;transform:none}}

  /* the camera itself — scaled/panned by JS, origin set per shot */
  .tr-app-frame{
    position:relative;color:#F7F5F0;transform-origin:50% 50%;
    will-change:transform;transform:scale(1);
    transition:transform 900ms cubic-bezier(.33,.9,.28,1);
  }
  .tr-vignette{position:absolute;inset:0;pointer-events:none;z-index:60;
    box-shadow:inset 0 0 90px rgba(0,0,0,.55), inset 0 0 240px rgba(0,0,0,.28)}
  .tr-flash{position:absolute;inset:0;background:#07070A;opacity:0;pointer-events:none;z-index:61;
    transition:opacity 200ms ease}

  .tr-app-bar{display:flex;align-items:center;gap:.42rem;padding:.7rem 1rem;background:#0D0D10;border-bottom:1px solid rgba(247,245,240,.08)}
  .tr-dot{width:9px;height:9px;border-radius:50%;background:rgba(247,245,240,.18)}
  .tr-url{margin-left:.7rem;font-size:.76rem;letter-spacing:.04em;color:rgba(247,245,240,.40)}
  .tr-rec{margin-left:auto;display:flex;align-items:center;gap:.45rem;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(247,245,240,.45)}
  .tr-rec i{width:7px;height:7px;border-radius:50%;background:#C25C5C;animation:blink 1.6s infinite}
  @keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}

  .tr-ws{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.65rem 1.1rem;border-bottom:1px solid rgba(247,245,240,.08)}
  .tr-ws-label{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(247,245,240,.42)}
  .tr-ws-pill{font-size:.84rem;padding:.34rem .8rem;border-radius:3px;background:rgba(247,245,240,.06);border:1px solid rgba(247,245,240,.12)}
  .tr-ws-note{font-size:.76rem;color:rgba(247,245,240,.40)}

  .tr-tabs{display:flex;gap:.1rem;padding:0 .5rem;border-bottom:1px solid rgba(247,245,240,.08);overflow-x:auto;scrollbar-width:none}
  .tr-tabs::-webkit-scrollbar{display:none}
  .tr-tab{
    background:none;border:0;cursor:pointer;white-space:nowrap;font-family:var(--font);
    font-size:.82rem;color:rgba(247,245,240,.52);padding:.7rem .62rem;border-bottom:2px solid transparent;
    transition:color .25s ease,border-color .25s ease;
  }
  .tr-tab.tr-on{color:#F7F5F0;font-weight:600;border-bottom-color:#E8703F}

  .tr-panels{position:relative;height:392px}
  .tr-panel{padding:1rem 1.1rem;display:none;gap:.8rem;align-content:start;height:100%;overflow:hidden}
  .tr-panel.tr-on{display:grid;animation:panelIn .45s ease both}
  @keyframes panelIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

  .tr-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}
  .tr-stats.tr-five{grid-template-columns:repeat(5,minmax(0,1fr))}
  .tr-stats.tr-four{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tr-stat{background:rgba(247,245,240,.05);border:1px solid rgba(247,245,240,.09);border-radius:3px;padding:.65rem .72rem;display:grid;gap:.32rem}
  .tr-stat .tr-k{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(247,245,240,.46)}
  .tr-stat .tr-v{font-size:1.35rem;font-weight:500;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
  .tr-stat .tr-v.tr-sm{font-size:1rem}
  .tr-stat .tr-v small{font-size:.78rem;color:rgba(247,245,240,.46)}

  .tr-cols{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
  .tr-cols.tr-three{grid-template-columns:1fr 1fr .9fr}
  .tr-box{background:rgba(247,245,240,.04);border:1px solid rgba(247,245,240,.09);border-radius:3px;padding:.8rem .9rem}
  .tr-box h4{margin:0 0 .8rem;font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(247,245,240,.46);font-weight:600}
  .tr-lead{margin:0 0 .85rem;font-size:.92rem;color:#D8D4CB}

  .tr-meters{display:grid;gap:.4rem}
  .tr-meter{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:.65rem;font-size:.8rem}
  .tr-meters.tr-wide .tr-meter{grid-template-columns:152px 1fr auto}
  .tr-meters.tr-mid .tr-meter{grid-template-columns:104px 1fr auto}
  .tr-meter .tr-lab{color:rgba(247,245,240,.62)}
  .tr-meter .tr-track{height:7px;border-radius:3px;background:rgba(247,245,240,.10);overflow:hidden}
  .tr-meter .tr-fill{display:block;height:100%;width:0;border-radius:3px;background:#E8703F}
  .tr-meter .tr-num{color:rgba(247,245,240,.58);font-variant-numeric:tabular-nums}

  .tr-funnel{display:grid;gap:.5rem}
  .tr-funrow{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;
    gap:.6rem;padding:.5rem .7rem;border-radius:3px;overflow:hidden;font-size:.82rem;color:#D8D4CB;
    background:rgba(247,245,240,.05);border:1px solid rgba(247,245,240,.09)}
  /* the bar fills BEHIND the label — animating the row's own width made the
     text wrap to min-content at width:0 and blew the panel height out */
  .tr-step{position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(232,112,63,.20);
    border-right:1px solid rgba(232,112,63,.45);
    transition:width .8s cubic-bezier(.22,.9,.25,1)}
  .tr-funlab,.tr-funrow b{position:relative;z-index:1}
  .tr-funrow b{font-variant-numeric:tabular-nums;color:#F7F5F0}

  .tr-big{margin:.75rem 0 .35rem;font-size:1.7rem;font-weight:500;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
  .tr-big span{display:block;margin-top:.35rem;font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(247,245,240,.46)}
  .tr-note{margin:.8rem 0 0;font-size:.76rem;line-height:1.5;color:rgba(247,245,240,.46)}
  .tr-list{margin:.8rem 0 0;padding-left:1.05rem;font-size:.8rem;color:#C9C5BC}
  .tr-list li{margin-bottom:.45rem}

  .nt-trailer-stage table{width:100%;border-collapse:collapse;font-size:.82rem}
  .nt-trailer-stage th{text-align:left;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(247,245,240,.42);font-weight:600;padding:0 .6rem .5rem 0}
  .nt-trailer-stage td{padding:.4rem .6rem .4rem 0;border-top:1px solid rgba(247,245,240,.08);color:#D8D4CB;font-variant-numeric:tabular-nums}
  td em{color:rgba(247,245,240,.42);font-style:normal;font-size:.76rem}
  tr.tr-row{opacity:0;transform:translateY(6px)}
  tr.tr-row.tr-in{opacity:1;transform:none;transition:opacity .45s ease,transform .45s ease}

  .tr-pill{display:inline-block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
    background:rgba(232,112,63,.16);color:#F3B892;border:1px solid rgba(232,112,63,.3);
    border-radius:3px;padding:.22rem .6rem;font-weight:600}
  .tr-pill.tr-on{background:rgba(122,180,120,.16);color:#9FD09C;border-color:rgba(122,180,120,.32)}
  .tr-kv{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;font-size:.82rem;color:#D8D4CB;align-items:center}
  .tr-kv span:nth-child(odd){color:rgba(247,245,240,.46)}
  .tr-price{font-size:1.9rem;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
  .tr-price small{font-size:.8rem;color:rgba(247,245,240,.46);font-weight:400}

  /* ---------- cursor ---------- */
  .tr-cursor{position:absolute;left:0;top:0;width:22px;height:22px;z-index:50;
    pointer-events:none;opacity:0;transition:opacity .35s ease;
    filter:drop-shadow(0 3px 7px rgba(0,0,0,.75))}
  .tr-cursor.show{opacity:1}
  .tr-ripple{position:absolute;z-index:49;border-radius:50%;pointer-events:none;
    border:1.5px solid #F3B892;opacity:0}
  .tr-ripple.go{animation:rip .62s ease-out forwards}
  @keyframes rip{
    from{width:6px;height:6px;opacity:.95;transform:translate(-50%,-50%)}
    to{width:78px;height:78px;opacity:0;transform:translate(-50%,-50%)}}

  /* ---------- caption + controls ---------- */

/* ============================================================
   Nudge dashboard trailer — mini player + fullscreen
   All component classes are `tr-` prefixed so the page's own
   .app-frame / .app-tab snapshot styles cannot bleed into it.
   ============================================================ */
.nt-trailer{position:fixed;z-index:80;right:20px;bottom:20px;width:340px;
  border-radius:3px;overflow:hidden;background:#0D0D10;
  border:1px solid rgba(232,112,63,.34);
  box-shadow:0 26px 60px -22px rgba(20,15,5,.62);
  transform:translateY(18px);opacity:0;pointer-events:none;
  transition:opacity .45s ease, transform .45s ease}
.nt-trailer.is-in{opacity:1;transform:none;pointer-events:auto}
.nt-trailer-head{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem .5rem .8rem;
  background:#0B0B0D;border-bottom:1px solid rgba(247,245,240,.09)}
.nt-trailer-head b{font-size:.76rem;font-weight:600;color:#F7F5F0;letter-spacing:.01em}
.nt-trailer-head .nt-sp{margin-left:auto}
.nt-ico{width:28px;height:28px;display:grid;place-items:center;cursor:pointer;
  background:none;border:0;border-radius:3px;color:rgba(247,245,240,.62);line-height:0}
.nt-ico:hover{background:rgba(247,245,240,.10);color:#F7F5F0}
.nt-ico svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.nt-trailer-body{position:relative;overflow:hidden;cursor:pointer;background:#131316}
.nt-trailer-stage{width:1120px;transform-origin:0 0;will-change:transform}
.nt-trailer-cta{position:absolute;inset:0;display:grid;place-items:end center;
  padding-bottom:.7rem;pointer-events:none;
  background:linear-gradient(to top, rgba(8,8,10,.82), rgba(8,8,10,0) 46%)}
.nt-trailer-cta span{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
  color:#F3B892;font-weight:600}

/* fullscreen overlay */
.nt-fs{position:fixed;inset:0;z-index:120;background:rgba(8,8,10,.96);
  display:none;place-items:center;padding:26px 20px;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.nt-fs.is-open{display:grid}
.nt-fs-inner{width:100%;max-width:1400px;display:grid;justify-items:center;gap:0}
.nt-fs .nt-trailer-stage{transform-origin:50% 0}
.nt-fs-shell{position:relative;border-radius:3px;overflow:hidden;background:#131316;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9)}
.nt-fs-close{position:fixed;top:18px;right:20px;z-index:2;background:rgba(247,245,240,.10);
  border:1px solid rgba(247,245,240,.2);color:#F7F5F0;border-radius:3px;
  width:38px;height:38px;display:grid;place-items:center;cursor:pointer;line-height:0}
.nt-fs-close:hover{background:rgba(247,245,240,.2)}
.nt-fs-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.tr-caption{margin:16px 0 0;min-height:1.5em;text-align:center;font-size:1rem;color:#D8D4CB;
  opacity:0;transform:translateY(4px);transition:opacity .4s ease,transform .4s ease}
.tr-caption.tr-in{opacity:1;transform:none}
.nt-scrub{margin-top:12px;width:min(520px,80vw);height:3px;border-radius:3px;
  background:rgba(247,245,240,.16);overflow:hidden}
.nt-scrub b{display:block;height:100%;width:0;background:#E8703F;border-radius:3px}
.nt-fs-ctl{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;justify-content:center}
.nt-fs-ctl button{font-family:inherit;font-size:.84rem;font-weight:600;cursor:pointer;
  padding:.52rem 1rem;border-radius:3px;border:1px solid rgba(247,245,240,.26);
  background:none;color:#F7F5F0}
.nt-fs-ctl button:hover{background:rgba(247,245,240,.12)}
.nt-fs-ctl button.pri{background:#E8703F;border-color:#E8703F;color:#17140C}
/* The stage is a fixed 1120px-wide desktop dashboard. Below ~1000px it scales
   to 4-8px text, which communicates nothing, so both entry points are hidden and
   the static snapshot section (which stacks properly) carries small screens. */
@media(max-width:999px){ .nt-trailer, .nt-trailer-cta-row{display:none} }
@media(prefers-reduced-motion:reduce){ .nt-trailer{display:none} }
