/* Addendum31: a fixed Ride layout behind one continuously shrinking clip. */
.pad-content{display:contents}
.chart-drawing{position:absolute;inset:0;pointer-events:none}
.reel-page.pad-canonical:not(.sheet-full){--current-pad-height:var(--pad-height,56px)}
.reel-page.pad-canonical:not(.sheet-full) .trading{height:var(--pad-height,56px);overflow:hidden;clip-path:inset(0 round 20px);border-radius:20px;transition:none;contain:layout paint}
.reel-page.pad-canonical:not(.sheet-full) .pad-content{position:relative;display:flex;flex-direction:column;flex:none;contain:layout;height:var(--pad-layout-target);min-height:var(--pad-layout-target);width:100%}
.reel-page.pad-canonical:not(.sheet-full) .grabber-row{position:relative;inset:auto;display:block;flex:0 0 24px;height:24px;min-height:24px}
.reel-page.pad-canonical:not(.sheet-full) .sheet-grabber{height:24px;min-height:24px;opacity:var(--pad-hud-opacity);transform:none;position:relative}
.reel-page.pad-canonical:not(.sheet-full) .rush-hud{position:relative;contain:layout;display:flex;flex-direction:column;align-items:stretch;gap:0;flex:0 0 68px;height:68px;min-height:68px;max-height:68px;padding:0 12px;overflow:visible}
.reel-page.pad-canonical:not(.sheet-full) .rush-identity-row{display:flex;align-items:center;gap:4px;flex:0 0 32px;height:32px;min-height:32px;max-height:32px;min-width:0;overflow:visible;white-space:nowrap}
.reel-page.pad-canonical:not(.sheet-full) .rush-price-row{display:flex;align-items:center;flex:0 0 36px;height:36px;min-height:36px;max-height:36px;min-width:0;overflow:visible;visibility:visible}
.reel-page.pad-canonical:not(.sheet-full) .token-chip{display:flex;flex:1 1 0;min-width:0;width:auto;height:32px;padding:0;overflow:visible}
.reel-page.pad-canonical:not(.sheet-full) .token-heading{display:flex;flex:1 1 0;align-items:center;gap:4px;min-width:0;overflow:visible;height:32px}
.reel-page.pad-canonical:not(.sheet-full) .token-heading>b{display:inline-block;flex:0 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:20px;font-weight:700;color:var(--muted)}
.reel-page.pad-canonical:not(.sheet-full) .practice-badge{display:inline;position:static;flex:none;white-space:nowrap;font-size:9px;line-height:16px;opacity:var(--pad-hud-opacity)}
.reel-page.pad-canonical:not(.sheet-full) .rush-controls{position:static;display:flex;flex:0 1 auto;align-items:center;gap:2px;height:26px;min-width:0;max-width:calc(100% - 64px);opacity:var(--pad-hud-opacity)}
.reel-page.pad-canonical:not(.sheet-full) .token-values{display:flex;flex:1;min-width:0;height:36px;gap:6px;overflow:visible;white-space:nowrap}
.reel-page.pad-canonical:not(.sheet-full) .token-values>[data-ui=hudPrice]{font-size:22px;line-height:28px;font-weight:700;letter-spacing:-.4px;width:9ch;flex:none}
.reel-page.pad-canonical:not(.sheet-full) .token-values .change-pill{display:inline-flex;align-items:center;position:static;margin:0;min-width:0;height:18px;min-height:18px;padding:0 6px;border-radius:999px;font-size:12px;font-weight:600;line-height:18px;transform-origin:left top}
.reel-page.pad-canonical:not(.sheet-full) .token-values>.pro-price{display:none}
.reel-page.pad-canonical:not(.sheet-full) .analysis-scroll{visibility:visible;display:flex;flex:1 1 0;min-height:0;contain:layout;transform:translateY(var(--pad-chart-shift));overflow:hidden}
.reel-page.pad-canonical:not(.sheet-full) .chart-frame{flex:1 1 0;min-height:0}
.reel-page.pad-canonical:not(.sheet-full) .chart-drawing{height:var(--chart-paint-height,100%);bottom:auto;opacity:var(--pad-chart-opacity);transform:scaleY(var(--chart-paint-scale,1));transform-origin:left top}
.reel-page.pad-canonical:not(.sheet-full) :is(.grabber-tally,.plot-pro,.plot-options){opacity:var(--pad-hud-opacity)}
.reel-page.pad-canonical:not(.sheet-full) .chip-volume{position:absolute;right:80px;top:-15px;display:flex;width:60px;margin:0;opacity:var(--pad-chip-opacity)}
.reel-page.pad-canonical:not(.sheet-full) .morph-spark{left:auto;right:12px;top:18px;width:56px;height:20px;opacity:var(--pad-spark-opacity);transform:translateX(var(--pad-spark-shift));transform-origin:left top}
.reel-page.pad-canonical:not(.sheet-full) .token-heading>[data-ui=hotBadge]{position:absolute;left:0;top:-14px;height:20px;min-height:20px;font-size:0;gap:0;min-width:20px;padding:2px 4px;opacity:var(--pad-chip-opacity)}
.reel-page.pad-canonical:not(.sheet-full) .media-stage{height:100%;top:0;transition:none;background:transparent}
.reel-page.pad-canonical:not(.sheet-full) :is(.caption,.social-rail,.big-moves){transition:none}
@media(max-width:414px){.reel-page.pad-canonical:not(.sheet-full) .chip-volume{visibility:hidden}}

.reel-band-ambient{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.media-stage :is(.reel-poster,.reel-video){z-index:1}


.reel-page.pad-canonical[data-snap=chip] .rush-controls,.reel-page.chart-revealing .rush-controls{pointer-events:none}

/* Addendum34: one registered progress animates the actual pad height. There is
   no surface clip/content FLIP pair, and no independent media/band transition. */
@property --pad-t{syntax:'<number>';inherits:true;initial-value:0}
.reel-page.pad-canonical{--pad-t:0;--pad-base-px:56;--pad-span-px:332;--pad-p:clamp(0,var(--pad-t),1);--pad-height:calc((var(--pad-base-px) + var(--pad-span-px) * var(--pad-t)) * 1px);--pad-rise-px:max(0,calc(var(--pad-base-px) + var(--pad-span-px) * var(--pad-t) - 56));--pad-hud-opacity:clamp(0,calc((var(--pad-p) - .5) * 2),1);--pad-chip-opacity:clamp(0,calc((.4 - var(--pad-p)) * 2.5),1);--pad-chart-opacity:clamp(0,calc((var(--pad-p) - .3) / .7),1);--pad-spark-opacity:calc(1 - var(--pad-chart-opacity));--pad-chart-shift:calc((1 - var(--pad-p)) * 24px);--pad-spark-shift:calc(var(--pad-p) * 12px);--pad-indicator-opacity:var(--pad-p)}
/* Addendum36: one bottom-anchored glass sheet over an unchanged video.
   The chip is the same element, clipped above the pill with 16px side insets.
   Content width/target layout remain fixed while the surface is revealed. */
.reel-page.pad-canonical:not(.sheet-full) .trading{height:calc(var(--pad-height) + var(--chart-bottom));padding-bottom:var(--chart-bottom);border:0;border-radius:20px 20px 0 0;clip-path:inset(0 calc((16px + var(--safe-right)) * (1 - var(--pad-p))) calc(var(--chart-bottom) * (1 - var(--pad-p))) calc((16px + var(--safe-left)) * (1 - var(--pad-p))) round 20px 20px calc(20px * (1 - var(--pad-p))) calc(20px * (1 - var(--pad-p))));background:rgba(14,14,16,.72);backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);box-shadow:inset 0 1px 0 #ffffff14;transform:none;transition:none!important}
.reel-page.pad-canonical:not(.sheet-full) .pad-content{height:var(--pad-layout-target,320px);min-height:var(--pad-layout-target,320px);width:calc(100% - 32px - var(--safe-left) - var(--safe-right));margin-left:calc(16px + var(--safe-left));margin-right:calc(16px + var(--safe-right));top:0;transform:none!important}
.pad-shared-field{transform-origin:left top;transform:translate(calc(var(--field-dx) * (1 - var(--pad-p))),calc(var(--field-dy) * (1 - var(--pad-p)))) scale(calc(1 + (var(--field-scale) - 1) * (1 - var(--pad-p))))}
.reel-page.pad-canonical .media-stage,.reel-page.pad-canonical :is(.caption,.social-rail,.big-moves,.reel-band-ambient,.reel-video,.reel-poster),.ambient-backdrop canvas{transition:none!important}
.reel-page.pad-canonical .media-stage{top:0;bottom:0;height:100%;transform:none}
.reel-page.pad-canonical .media-stage :is(.reel-video,.reel-poster){scale:1;transform:none}
.buy-axis-clip{max-height:max(0px,calc(var(--pad-height,9999px) - var(--pad-overhead,112px) - var(--pad-chart-shift,0px) - var(--axis-plot-top,14px)))}
/* Manual resizing above the floor gives height only to the chart. Release
   retains that drawing extent, so a partial close never changes its layout. */
.reel-page.pad-canonical.handle-dragging .pad-content{height:max(var(--ride-min-height),var(--pad-height));min-height:var(--ride-min-height)}
.reel-page.pad-canonical.handle-dragging .chart-drawing{height:calc(max(var(--ride-min-height),var(--pad-height)) - var(--pad-overhead));transform:none}

/* Keep the constant target layout independent of the changing outer height.
   All movement below still derives from the one inherited --pad-t. */
.reel-page.pad-canonical:not(.sheet-full),.reel-page.pad-canonical:not(.sheet-full)>.reel{contain:strict}
.reel-page.pad-canonical:not(.sheet-full) .trading{container-type:normal}
.reel-page.pad-canonical:not(.sheet-full) .pad-content{contain:strict}
.reel-page.pad-canonical:not(.sheet-full) .media-stage{contain:strict}
/* The overlay and rail consume the same presented progress as the sheet.
   Static measurements are refreshed before a move, never on animation frames.
   At the safe ceiling activity disappears first, then Live; identity stays. */
.reel-page.pad-canonical{--overlay-max-rise-px:9999;--rail-max-rise-px:9999;--overlay-room-at-rest-px:9999;--overlay-rise-px:min(var(--pad-rise-px),var(--overlay-max-rise-px));--overlay-room-px:calc(var(--overlay-room-at-rest-px) - var(--overlay-rise-px));--feed-caption-height:72px}
.reel-page.pad-canonical:not(.sheet-full) .caption{left:calc(20px + var(--safe-left));right:calc(72px + var(--safe-right));bottom:calc(var(--chart-bottom) + 56px + 12px);transform:translateY(calc(-1px * var(--overlay-rise-px)));will-change:transform}
.reel-page.pad-canonical:not(.sheet-full) .social-rail{display:flex;flex-direction:column;bottom:calc(var(--chart-bottom) + 56px + 12px);transform:translateY(calc(-1px * min(var(--pad-rise-px),var(--rail-max-rise-px))));will-change:transform}
.reel-page.pad-canonical:not(.sheet-full) .big-moves{bottom:calc(var(--chart-bottom) + 56px + var(--feed-caption-height) + 24px);transform:translateY(calc(-1px * var(--overlay-rise-px)));clip-path:inset(max(0px,calc(100% - max(0,var(--overlay-room-px)) * 1px)) 0 0);will-change:transform}
.reel-page.pad-canonical .activity-stack-items{opacity:1}
.reel-page.pad-canonical .activity-stack-items>:is(.big-move-banner,.chat-activity-item){--activity-fit:clamp(0,calc(var(--overlay-room-px) - 34 - (var(--activity-rank,0) + 1) * 42 + 6),1);opacity:calc(var(--activity-opacity,1) * var(--activity-fit));clip-path:inset(calc((1 - var(--activity-fit)) * 50%) 0)}
.reel-page.pad-canonical .activity-stack-items>.is-leaving{opacity:0}
.reel-page.pad-canonical .live-chat-pill{opacity:clamp(0,calc((var(--overlay-room-px) - 16) / 12),1)}
.reel-page.pad-canonical .video-progress{bottom:0;transition:none}

/* Resolve the progress-derived values once on the reel, then inherit typed
   numbers/lengths instead of re-evaluating their calc graphs in every child. */
@property --pad-p{syntax:'<number>';inherits:true;initial-value:0}
@property --pad-height{syntax:'<length>';inherits:true;initial-value:9999px}
@property --pad-hud-opacity{syntax:'<number>';inherits:true;initial-value:1}
@property --pad-chip-opacity{syntax:'<number>';inherits:true;initial-value:1}
@property --pad-chart-opacity{syntax:'<number>';inherits:true;initial-value:1}
@property --pad-spark-opacity{syntax:'<number>';inherits:true;initial-value:1}
@property --pad-chart-shift{syntax:'<length>';inherits:true;initial-value:0px}
@property --pad-spark-shift{syntax:'<length>';inherits:true;initial-value:0px}

/* Addendum37: compact fixed HUD; all remaining height belongs to the plot. */
.reel-page.pad-canonical:not(.sheet-full) .grabber-row{width:calc(100% + 32px);margin-left:-16px;margin-right:-16px}
.reel-page.pad-canonical:not(.sheet-full) .rush-hud{width:calc(100% + 16px);margin-left:-8px;margin-right:-8px;padding:0 8px}
.reel-page.pad-canonical .grabber-tally{top:4px;right:16px;font-size:11px;font-weight:500}
.reel-page.pad-canonical .rush-controls{gap:2px}
.reel-page.pad-canonical .rush-controls>:is(.stake-chip,.speed-chip){height:26px;min-height:26px;padding:0 4px;font:500 12px/24px var(--font);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reel-page.pad-canonical .rush-controls>.live-chat-button{width:26px;min-width:26px;height:26px;min-height:26px}
.reel-page.pad-canonical .pad-price-actions{display:flex;flex:none;align-items:center;gap:4px;opacity:var(--pad-hud-opacity)}
.reel-page.pad-canonical .pad-price-actions>button{position:relative;inset:auto;translate:none;flex:none;width:28px;min-width:28px;height:28px;min-height:28px;padding:0;border-radius:50%;background:rgba(14,14,16,.32)}
.reel-page.pad-canonical .pad-price-actions .mini-chevron{display:none}
.reel-page.pad-canonical[data-snap=chip] .pad-price-actions,.reel-page.chart-revealing .pad-price-actions{pointer-events:none}
.pro-view .pad-price-actions{display:none}
.reel-page.pad-canonical .ride-position-row{display:flex;flex:0 0 32px;flex-wrap:nowrap;align-items:center;gap:4px;min-height:32px;height:32px;max-height:32px;margin:0 12px;animation:none;transition:none;white-space:nowrap;font-size:12px}
.reel-page.pad-canonical .ride-position-row .position-side{flex:none;min-width:26px;height:18px;min-height:18px;padding:0 3px;font-size:10px;line-height:18px;font-weight:700}
.reel-page.pad-canonical .ride-position-entry{flex:0 1 auto;min-width:28px;font-size:12px;line-height:16px;overflow:hidden;text-overflow:ellipsis}
.reel-page.pad-canonical .ride-position-pnl{display:flex;flex:1 1 auto;justify-content:flex-end;gap:2px;margin:0;min-width:0;overflow:hidden;font-size:13px;font-weight:700;line-height:18px}
.reel-page.pad-canonical .ride-position-pnl>strong{font:inherit}
.reel-page.pad-canonical .ride-position-row .position-lock{flex:none;width:14px;height:14px}
.reel-page.pad-canonical .ride-position-row .position-lock>svg{width:14px;height:14px}
.reel-page.pad-canonical .ride-position-row>.position-cashout{margin-left:auto;min-width:44px;height:28px;min-height:28px;padding:0 7px;font:500 12px/26px var(--font)}
.reel-page.pad-canonical .ride-pnl{padding:2px 6px;font-size:12px;line-height:18px;font-weight:700;border-radius:6px}
.reel-page.pad-canonical .ride-pnl strong{font-weight:700}
