.project-ribbon.is-dragging canvas{cursor:grabbing}.project-ribbon.is-entering .ribbon-anchor{transition:none}.ribbon-anchor{position:absolute;top:0;left:0;opacity:0;will-change:transform,opacity;transition:opacity .15s ease;max-width:min(72vw,26rem)}.ribbon-title{margin:0;color:#f7f3ee;font-size:clamp(1rem,1.7vw,1.45rem);font-weight:500;line-height:1.05;letter-spacing:-.01em;text-shadow:0 1px 2px rgba(0,0,0,.55),0 10px 28px rgba(0,0,0,.35)}.ribbon-title--static{position:absolute;top:.85rem;left:.95rem;right:.95rem;opacity:1}.ribbon-tags{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:.55rem;max-width:100%;padding:.42rem .72rem .36rem .62rem;background:#12100e6b;border:1px solid rgba(247,243,238,.28);box-shadow:0 10px 28px #0000002e;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15)}.ribbon-tags:before{content:"";width:2px;align-self:stretch;margin:.08rem .12rem .08rem 0;background:var(--accent, #ff3434);flex-shrink:0}.ribbon-tags--static{position:absolute;left:.95rem;bottom:.85rem;opacity:1}.ribbon-tag{color:#f7f3ee;font-size:.62rem;font-weight:500;line-height:1;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}.ribbon-tag-sep{width:1px;height:.7rem;background:#f7f3ee61;flex-shrink:0}.project-ribbon.is-compact .ribbon-title{font-size:.8rem}.project-ribbon.is-compact .ribbon-tags{gap:.32rem;padding:.22rem .4rem .18rem .32rem}.project-ribbon.is-compact .ribbon-tag{font-size:.5rem;letter-spacing:.1em}
