/* Independently-rendered specialist elements. Shared by published pages and both editor previews. */
.rcsp-animated-highlight{display:inline-block;position:relative;--rcsp-duration:850ms;transition:opacity var(--rcsp-duration) ease,transform var(--rcsp-duration) ease}
.rcsp-animated-highlight[data-rcsp-reveal="scroll"]:not(.rcsp-visible){opacity:.45;transform:translateY(6px)}
.rcsp-highlight-underline::after{content:"";display:block;width:100%;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--rcsp-duration) ease}
.rcsp-highlight-underline.rcsp-visible::after{transform:scaleX(1)}
.rcsp-highlight-gradient{background:linear-gradient(120deg,#2563eb,#9c47c4,#2563eb);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rcsp-gradient 7s linear infinite}
@keyframes rcsp-gradient{to{background-position:200% 0}}
.rcsp-vector{display:grid;grid-template-columns:minmax(100px,240px) 1fr;gap:clamp(1rem,4vw,3rem);align-items:center;--rcsp-cycle:9s}.rcsp-vector svg{width:100%;max-width:240px;color:var(--rcsp-primary,#3467ef)}
.rcsp-vector-float svg{animation:rcsp-float var(--rcsp-cycle) ease-in-out infinite}.rcsp-vector-orbit svg{animation:rcsp-orbit var(--rcsp-cycle) linear infinite}.rcsp-vector-drift svg{animation:rcsp-drift var(--rcsp-cycle) ease-in-out infinite}
@keyframes rcsp-float{50%{transform:translateY(-12px)}}@keyframes rcsp-orbit{to{transform:rotate(360deg)}}@keyframes rcsp-drift{50%{transform:translateX(15px)}}
.rcsp-image-frame{margin:0;overflow:hidden;--rcsp-duration:320ms}.rcsp-image-frame img{display:block;width:100%;height:auto;transition:transform var(--rcsp-duration),filter var(--rcsp-duration)}.rcsp-frame-rounded{border-radius:16px}.rcsp-frame-circle{border-radius:50%;aspect-ratio:1}.rcsp-frame-circle img{height:100%;object-fit:cover}.rcsp-frame-zoom:hover img{transform:scale(1.06)}.rcsp-frame-lift:hover img{transform:translateY(-6px)}.rcsp-frame-overlay:hover img{filter:brightness(.7)}.rcsp-image-frame figcaption{padding:.5rem}
.rcsp-lightbox img{max-width:100%;height:auto}.rcsp-lightbox-modal{max-width:min(95vw,1100px);max-height:95vh;padding:1rem;border:0;border-radius:12px;box-shadow:0 20px 100px #0008}.rcsp-lightbox-modal::backdrop{background:#000b}.rcsp-lightbox-modal img{display:block;max-width:100%;max-height:80vh;object-fit:contain;margin-top:.75rem}.rcsp-lightbox-modal button{float:right}
.rcsp-parallax{position:relative;min-height:260px;overflow:hidden;display:grid;place-items:center;background:#e5eefa}.rcsp-parallax img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.7)}.rcsp-parallax>div{position:relative;z-index:1;padding:clamp(2rem,5vw,5rem);text-align:center;color:#111827;background:#ffffffe0}.rcsp-parallax-scroll img{transform:scale(1.05)}.rcsp-parallax-fixed{background-attachment:fixed}
.rcsp-sticky-enabled{position:sticky;top:var(--rcsp-sticky-offset,20px)}.rcsp-sticky{padding:1rem;border-radius:12px;background:var(--rcsp-surface,#f6f8fc)}
.rcsp-words strong{display:inline-block;min-width:4ch}.rcsp-words [hidden]{display:none!important}
.rcsp-shape-divider{width:100%;background:var(--rcsp-primary,#3467ef);clip-path:ellipse(100% 95% at 50% 100%)}.rcsp-shape-slant{clip-path:polygon(0 70%,100% 0,100% 100%,0 100%)}.rcsp-shape-steps{clip-path:polygon(0 70%,25% 70%,25% 50%,50% 50%,50% 25%,75% 25%,75% 0,100% 0,100% 100%,0 100%)}.rcsp-shape-curve{clip-path:ellipse(90% 100% at 50% 100%)}.rcsp-shape-top{transform:rotate(180deg)}.rcsp-shape-dark{background:#111827}.rcsp-shape-light{background:#dce6f5}
.rcsp-floating-shapes{position:relative;min-height:130px;overflow:hidden;--rcsp-cycle:12s}.rcsp-floating-shapes span{display:block;position:absolute;width:30px;height:30px;top:calc(10% + mod(var(--rcsp-shape-index),4)*20%);left:calc(5% + var(--rcsp-shape-index)*8%);background:var(--rcsp-primary,#3467ef);opacity:.2;border-radius:50%}.rcsp-shapes-square span{border-radius:0}.rcsp-shapes-diamond span{border-radius:0;transform:rotate(45deg)}.rcsp-shapes-drift span{animation:rcsp-float var(--rcsp-cycle) ease-in-out infinite}
.rcsp-compare{position:relative;overflow:hidden;aspect-ratio:16/9;--rcsp-split:50%;max-width:100%;margin:0}.rcsp-compare-before,.rcsp-compare-after{position:absolute;inset:0}.rcsp-compare img{display:block;width:100%;height:100%;object-fit:cover}.rcsp-compare-after{clip-path:inset(0 calc(100% - var(--rcsp-split)) 0 0)}.rcsp-compare input{position:absolute;bottom:12px;left:5%;width:90%;z-index:3;accent-color:#fff}.rcsp-compare figcaption{position:absolute;top:0;right:0;background:#111c;color:white;padding:.35rem .65rem}
.rcsp-viewer-360{touch-action:pan-y;cursor:ew-resize}.rcsp-viewer-360 img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain}.rcsp-viewer-360:focus-visible{outline:2px solid var(--rcsp-primary,#3467ef)}
.rcsp-scroll-progress{position:fixed;left:0;right:0;top:0;z-index:9998;height:4px;background:#dce4ef;--rcsp-progress:0%}.rcsp-scroll-progress span{display:block;width:var(--rcsp-progress);height:100%;background:var(--rcsp-primary,#3467ef)}.rcsp-scroll-bottom{top:auto;bottom:0}
.rcsp-region-links ul,.rcsp-side-menu ul{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;margin:0;padding:0}.rcsp-side-menu ul{flex-direction:column}
.rcsp-content-carousel{position:relative;overflow:hidden}.rcsp-content-carousel>article{padding:clamp(1.5rem,4vw,3rem);border:1px solid #dbe3ef;border-radius:12px}.rcsp-content-carousel>article[hidden]{display:none}.rcsp-carousel-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}
.rcsp-counter strong{font-size:clamp(2rem,4vw,4rem);font-variant-numeric:tabular-nums}
.rcsp-tooltip{position:relative;display:inline-flex;gap:.5rem;align-items:start}.rcsp-tooltip>span:not([hidden]){position:absolute;top:100%;left:0;z-index:4;width:max-content;max-width:min(90vw,280px);padding:.7rem;background:#172131;color:white;border-radius:6px;box-shadow:0 4px 20px #0003}
@media(max-width:767px){.rcsp-vector{grid-template-columns:1fr}.rcsp-sticky{position:static}.rcsp-parallax{background-attachment:scroll}}
@media(prefers-reduced-motion:reduce){.rcsp-animated-highlight,.rcsp-vector svg,.rcsp-floating-shapes span,.rcsp-highlight-gradient,.rcsp-image-frame img{animation:none!important;transition:none!important}.rcsp-animated-highlight:not(.rcsp-visible){opacity:1;transform:none}}

.rcsp-portfolio-grid .rcsp-portfolio-items{display:grid;grid-template-columns:repeat(var(--rcsp-portfolio-columns,3),minmax(0,1fr));gap:var(--rcsp-portfolio-gap,18px)}
.rcsp-portfolio-grid .rcsp-portfolio-items img{max-width:100%;height:auto}.rcsp-portfolio-masonry .rcsp-portfolio-items{align-items:start}.rcsp-portfolio-editorial .rcsp-portfolio-items article:first-child{grid-column:span 2}
.rcsp-hotspot-image{position:relative}.rcsp-hotspot{position:absolute;left:var(--x);top:var(--y)}.rcsp-hotspot button{border-radius:50%;width:32px;height:32px;background:#1c4df4;color:white;border:2px solid white;cursor:pointer}.rcsp-hotspot-details:not([hidden]){display:grid;position:absolute;left:100%;bottom:100%;min-width:180px;max-width:260px;padding:.65rem;background:#172131;color:white;z-index:4;box-shadow:0 4px 15px #0003;border-radius:8px}
@media(max-width:1023px){.rcsp-portfolio-grid .rcsp-portfolio-items{grid-template-columns:repeat(var(--rcsp-portfolio-tablet,2),minmax(0,1fr))}}
@media(max-width:767px){.rcsp-portfolio-grid .rcsp-portfolio-items{grid-template-columns:repeat(var(--rcsp-portfolio-mobile,1),minmax(0,1fr))}.rcsp-portfolio-editorial .rcsp-portfolio-items article:first-child{grid-column:auto}}

/* TR04 progressive tabs and slider accessibility */
.rcsp-native-tabs>.rcsp-tablist{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0;border-bottom:1px solid #cbd5e1;padding-bottom:.5rem}
.rcsp-native-tabs [role=tab]{cursor:pointer;padding:.5rem 1rem;border:1px solid #bdc9d9;border-radius:8px 8px 0 0;background:transparent;color:inherit;font:inherit}
.rcsp-native-tabs [role=tab][aria-selected=true]{background:#e9eefb;border-color:#64748b;font-weight:700}
.rcsp-native-tabs [role=tab]:focus-visible,.rcsp-hero-slider button:focus-visible,.rcsp-content-carousel button:focus-visible{outline:3px solid #315bcc;outline-offset:3px}
.rcsp-native-tabs [role=tabpanel]{padding:1rem .25rem;min-height:3rem}
.rcsp-native-tabs [role=tabpanel][hidden]{display:none!important}
.rcsp-native-tabs>details[hidden]{display:none!important}
.rcsp-carousel-status{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.rcsp-hero-slider [data-rcsp-slide][hidden]{display:none!important}

/* TR04 remediation: design-native effects, readable portfolio controls. */
.rcsp-highlight-stagger .rcsp-stagger-word{display:inline-block;white-space:pre;opacity:0;transform:translateY(.55em);transition:opacity var(--rcsp-duration) ease var(--rcsp-word-delay),transform var(--rcsp-duration) ease var(--rcsp-word-delay)}
.rcsp-highlight-stagger.rcsp-visible .rcsp-stagger-word{opacity:1;transform:none}
.rcsp-image-box{overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.rcsp-image-box img{transition:transform .35s ease;max-width:100%;height:auto}
.rcsp-image-box-zoom:is(:hover,:focus-within) img{transform:scale(1.06)}
.rcsp-image-box-lift:is(:hover,:focus-within){transform:translateY(-6px);box-shadow:0 14px 25px #0002}
.rcsp-image-box-tilt:is(:hover,:focus-within){transform:perspective(800px) rotateY(-3deg) rotateX(2deg)}
.rcsp-image-box-reveal figcaption{transition:opacity .3s ease,transform .3s ease}
@media(hover:hover){.rcsp-image-box-reveal figcaption{opacity:.7;transform:translateY(3px)}.rcsp-image-box-reveal:is(:hover,:focus-within) figcaption{opacity:1;transform:none}}
.rcsp-portfolio-filters ul,.rcsp-portfolio-pages{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;list-style:none;padding:0;margin:1rem 0}
.rcsp-portfolio-filters a,.rcsp-portfolio-pages a{display:inline-flex;padding:.45rem .8rem;border:1px solid #7b879c;border-radius:5px}
.rcsp-portfolio-filters a[aria-current=page]{font-weight:700;background:#eaf0ff}
.rcsp-portfolio-filters a:focus-visible,.rcsp-portfolio-pages a:focus-visible{outline:3px solid #315bcc;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.rcsp-highlight-stagger .rcsp-stagger-word{opacity:1!important;transform:none!important;transition:none!important}.rcsp-image-box,.rcsp-image-box img,.rcsp-image-box figcaption{transition:none!important;transform:none!important}}

/* Independent motion-path choices: no proprietary library or canvas runtime required. */
.rcsp-vector-figure-eight svg{animation:rcsp-vector-eight var(--rcsp-cycle) ease-in-out infinite}
.rcsp-vector-sway svg{animation:rcsp-vector-sway var(--rcsp-cycle) ease-in-out infinite;transform-origin:center 90%}
@keyframes rcsp-vector-eight{0%,100%{transform:translate(0,0)}25%{transform:translate(14px,-9px)}50%{transform:translate(0,0)}75%{transform:translate(-14px,9px)}}
@keyframes rcsp-vector-sway{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@media(prefers-reduced-motion:reduce){.rcsp-vector-figure-eight svg,.rcsp-vector-sway svg{animation:none!important}}

/* TR04 native gallery controls and 360° alternative to pointer dragging. */
.rcsp-lightbox-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.6rem}
.rcsp-lightbox-controls [role=status]{font-size:.9rem;min-width:8ch;text-align:center}
.rcsp-lightbox-modal .rcsp-lightbox-controls button{float:none}
.rcsp-frame-controls{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center;margin-block:.5rem}
.rcsp-frame-controls button{cursor:pointer;padding:.35rem .8rem}
