/* Sailor motion system. Layout widths, project sources and category filtering stay native. */
:root{--sm-red:#fb4243;--sm-ease:cubic-bezier(.2,.8,.2,1)}
.sm-depth{perspective:1100px;--sm-rx:0deg;--sm-ry:0deg;--sm-x:0px;--sm-y:0px}
.masonry-item.sm-depth{overflow:visible!important}
.sm-depth .sm-depth-media{transform-origin:50% 50%;transition:transform .6s var(--sm-ease),box-shadow .6s var(--sm-ease);isolation:isolate;overflow:hidden;position:relative}
.sm-depth .sm-depth-media img{transition:transform .7s var(--sm-ease)!important}
.sm-depth h3,.sm-depth figcaption,.sm-depth .pg-title-link{transition:color .3s!important}
.sm-depth:focus-within h3,.sm-depth:focus-within figcaption,.sm-depth:focus-within .pg-title-link{color:var(--sm-red)!important}
@media(hover:hover) and (pointer:fine){
 .sm-depth:hover .sm-depth-media{transform:translate(-3px,-5px) rotateX(var(--sm-rx)) rotateY(var(--sm-ry)) scale(.985)!important;box-shadow:7px 8px 0 var(--sm-red)!important}
 .sm-depth:hover .sm-depth-media img{transform:translate(var(--sm-x),var(--sm-y)) scale(1.045)!important}
 .sm-depth:hover h3,.sm-depth:hover figcaption,.sm-depth:hover .pg-title-link{color:var(--sm-red)!important}
}
/* Navigation stays native text: color fade and the common underline only. */
.sp2-main-nav a.sm-nav{position:relative;display:inline-block;color:#ddd!important;text-shadow:none!important;background:linear-gradient(var(--sm-red),var(--sm-red)) left bottom 6px/0 1px no-repeat;transition:color .25s ease,background-size .4s var(--sm-ease)!important}
.sp2-main-nav a.sm-nav::before,.sp2-main-nav a.sm-nav::after{content:none!important}
.sp2-main-nav a.sm-nav:hover,.sp2-main-nav a.sm-nav:focus-visible,.sp2-main-nav a.sm-nav[aria-current=page]{color:var(--sm-red)!important}
.sp2-main-nav a.sm-nav:hover,.sp2-main-nav a.sm-nav:focus-visible{background-size:100% 1px}
.sm-tide-host{position:relative!important;border-top-color:transparent!important}
.sm-tide{position:absolute;top:-21px;left:0;width:100%;height:42px;overflow:visible;color:var(--sm-red);pointer-events:none}
.sm-tide path{fill:none;stroke:currentColor;stroke-width:1.2;vector-effect:non-scaling-stroke}
.sm-cta{position:relative!important;isolation:isolate;transition:color .3s,background-color .3s!important}
.sm-cta::after{content:'';position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--sm-red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--sm-ease);pointer-events:none}
.sm-cta:hover::after,.sm-cta:focus-visible::after{transform:scaleX(1)}
.sm-cta .sp-arrow{transition:transform .4s var(--sm-ease)!important}
.sm-invitation{overflow:hidden!important;background:#080808!important;border:1px solid var(--sm-red)!important;color:var(--sm-red)!important}
.sm-invitation::before{content:'';position:absolute;top:0;left:-40%;width:30%;height:1px;background:#fff;box-shadow:0 0 7px rgba(255,255,255,.7);animation:sm-invite 7s var(--sm-ease) infinite;animation-play-state:paused;pointer-events:none}
.sm-invitation.sm-visible::before{animation-play-state:running}
@keyframes sm-invite{0%,65%{left:-40%;opacity:0}70%{opacity:.9}90%{left:115%;opacity:.9}91%,100%{opacity:0;left:115%}}
.sm-motion-pause{display:block;margin-top:14px;padding:4px 0;background:none;border:0;color:#888;font:inherit;font-size:11px;line-height:1.4;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
body.sm-motion-paused .sm-invitation::before{animation-play-state:paused!important}
/* Circle-only family from the approved reference. Idle never stretches the circles. */
.sm-skill-symbol{position:relative;display:block;width:88px;height:88px;flex:0 0 88px;margin-bottom:20px;--orbit-ink:#fb4243;--orbit-paper:#f3f2ed;--orbit-ground:#080808}
.sp3-services-red .sm-skill-symbol,.sp2-cap-index .sm-skill-symbol{--orbit-ink:#090909;--orbit-ground:#fb4243}
.sm-icon.sm-orbit-icon{display:block;width:100%;height:100%;overflow:visible}
.sm-orbit-slot{transform-origin:0 0;transition:transform .95s cubic-bezier(.22,1,.36,1),opacity .65s ease}
.sm-orbit-disc{stroke-width:1.5px;transition:fill .7s ease,stroke .7s ease}
.sm-work-symbol .sm-orbit-disc{stroke-width:2px}
.sm-orbit-boundary,.sm-orbit-lens{transition:r .95s cubic-bezier(.22,1,.36,1),cx .95s cubic-bezier(.22,1,.36,1),cy .95s cubic-bezier(.22,1,.36,1)}
.sm-orbit-float{animation:sm-circle-float 6.8s ease-in-out infinite;animation-play-state:paused;--orbit-dx:5px;--orbit-dy:-7px}
.sm-orbit-layer[data-orbit-layer="1"] .sm-orbit-float{animation-duration:7.7s;animation-delay:-2.1s;--orbit-dx:-7px;--orbit-dy:6px}
.sm-orbit-layer[data-orbit-layer="2"] .sm-orbit-float{animation-duration:6.3s;animation-delay:-3.4s;--orbit-dx:7px;--orbit-dy:8px}
.sm-orbit-layer[data-orbit-layer="3"] .sm-orbit-float{animation-duration:8.4s;animation-delay:-1.2s;--orbit-dx:-5px;--orbit-dy:-5px}
.sm-skill-symbol.sm-visible .sm-orbit-float{animation-play-state:running}
/* Intersections share a trajectory so their cutouts stay registered. */
[data-sm-shape="case"] .sm-orbit-float,[data-sm-shape="3d"] .sm-orbit-float{animation:none;transform:none}
[data-sm-shape="case"] .sm-orbit-assembly,[data-sm-shape="3d"] .sm-orbit-assembly{animation:sm-circle-breathe 7s ease-in-out infinite;animation-play-state:paused}
.sm-visible .sm-orbit-assembly{animation-play-state:running}
.sm-orbit-layer[data-orbit-layer="4"] .sm-orbit-float{animation-duration:8.1s;animation-delay:-4.1s;--orbit-dx:-8px;--orbit-dy:9px}
.sm-orbit-layer[data-orbit-layer="5"] .sm-orbit-float{animation-duration:6.1s;animation-delay:-1.5s;--orbit-dx:10px;--orbit-dy:-6px}
.sm-orbit-layer[data-orbit-layer="6"] .sm-orbit-float{animation-duration:7.9s;animation-delay:-5.2s;--orbit-dx:6px;--orbit-dy:10px}
.sm-orbit-layer[data-orbit-layer="7"] .sm-orbit-float{animation-duration:6.6s;animation-delay:-3.5s;--orbit-dx:-10px;--orbit-dy:8px}
.sm-orbit-layer[data-orbit-layer="8"] .sm-orbit-float{animation-duration:8.6s;animation-delay:-2.8s;--orbit-dx:8px;--orbit-dy:-9px}
@keyframes sm-circle-float{0%,100%{transform:translate(calc(var(--orbit-dx)*-.7),calc(var(--orbit-dy)*-.7))}50%{transform:translate(var(--orbit-dx),var(--orbit-dy))}}
@keyframes sm-circle-breathe{0%,100%{transform:translate(0,3px)}50%{transform:translate(0,-5px)}}
body.sm-motion-paused .sm-orbit-float,body.sm-page-hidden .sm-orbit-float,body.sm-motion-paused .sm-orbit-assembly,body.sm-page-hidden .sm-orbit-assembly{animation-play-state:paused!important}
body.sm-motion-paused .sm-orbit-slot,body.sm-motion-paused .sm-orbit-disc,body.sm-motion-paused .sm-orbit-boundary,body.sm-motion-paused .sm-orbit-lens{transition:none!important}
@media(prefers-reduced-motion:reduce){.sm-orbit-float,.sm-orbit-assembly{animation:none!important;transform:none!important}.sm-orbit-slot,.sm-orbit-disc,.sm-orbit-boundary,.sm-orbit-lens{transition:none!important}}
.sp2-cap-index.sm-skills-index{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0!important;border-top:1px solid rgba(255,255,255,.35);margin-top:48px!important}
.sp2-cap-index.sm-skills-index>a{display:flex!important;align-items:center;gap:22px;border:0!important;border-bottom:1px solid rgba(255,255,255,.3)!important;border-radius:0!important;padding:26px 18px!important;font-size:17px!important;line-height:1.3!important;min-width:0;transition:background .3s,color .3s}
.sp2-cap-index.sm-skills-index>a:hover{background:rgba(0,0,0,.08)!important;color:#fff!important}
.sp2-cap-index .sm-skill-symbol{margin:0;width:78px;height:78px;flex-basis:78px}
/* Work hero: geometric symbol sits inside the composition, with safe breathing room. */
#content_e23c423cc>.is-content:has(.sm-work-symbol){position:relative;display:grid!important;grid-template-columns:minmax(0,1.45fr) minmax(240px,.8fr);column-gap:clamp(30px,4vw,70px);align-items:center;padding-right:clamp(24px,4vw,68px)!important;min-height:265px;opacity:1!important}
#content_e23c423cc>.is-content>p{grid-column:1;align-self:end}
#content_e23c423cc>.is-content>h1{grid-column:1;align-self:start;min-width:0}
.sm-work-symbol{position:relative;grid-column:2;grid-row:1/3;justify-self:center;width:clamp(210px,21vw,300px);height:clamp(210px,21vw,300px);pointer-events:none}
.sm-work-symbol>.sm-work-shape{position:absolute;inset:0;width:100%;height:100%;margin:0}
/* Home services use the full width: introduction above a balanced 3 x 2 grid. */
.sp3-services-red .sp-split{display:block!important}
.sp3-services-red .sp-split>div:first-child{display:grid!important;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);column-gap:clamp(28px,5vw,90px);align-items:end;margin-bottom:48px}
.sp3-services-red .sp-label{grid-column:1/-1;margin-bottom:24px!important}
.sp3-services-red h2{font-size:clamp(38px,4.7vw,72px)!important;line-height:1.05!important;letter-spacing:-.045em!important;margin:0!important;max-width:760px}
.sp3-services-red .sp-split>div:first-child>p:last-child{margin:0 0 4px!important;max-width:390px;font-size:18px!important;line-height:1.6!important}
.sp3-services-red .sp-services{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0 36px!important}
.sp3-services-red .sp-service{padding:26px 0!important;border-top:1px solid #08080855!important;min-height:0!important}
.sp3-services-red .sp-service h3{font-size:clamp(23px,2.2vw,32px)!important;line-height:1.2!important;margin:0 0 12px!important}
.sp3-services-red .sp-service p{font-size:16px!important;line-height:1.6!important;max-width:330px;margin:0!important}
.sp3-services-red .sp-service .sm-skill-symbol{width:78px;height:78px;margin-bottom:18px}
/* Clients are intentionally monochrome. */
.sp3-marquee.sm-client-dive{position:relative;isolation:isolate;transition:border-color .4s}
.sm-client-dive::before{content:'';position:absolute;inset:0;background:#fff;transform:scaleY(0);transform-origin:center;transition:transform .5s var(--sm-ease);z-index:-1}
.sm-client-dive:hover::before,.sm-client-dive:focus-visible::before{transform:scaleY(1)}
.sm-client-dive .sp3-marquee-group>span{transition:color .35s,transform .5s var(--sm-ease)}
.sm-client-dive:hover .sp3-marquee-group>span,.sm-client-dive:focus-visible .sp3-marquee-group>span{color:#080808!important;transform:translateY(-2px)}
.sm-client-dive:hover .sp3-marquee-track,.sm-client-dive:focus-visible .sp3-marquee-track{animation-play-state:paused!important}
.sm-client-dive:focus-visible{outline:2px solid #fff;outline-offset:5px}
/* Room to play: every description remains available. */
.sp2-process.sm-process{display:flex!important;gap:0!important;align-items:stretch}
.sp2-process.sm-process>div{flex:1;min-width:0;min-height:380px;padding:26px 24px!important;cursor:pointer;transition:flex-grow .6s var(--sm-ease),background .45s;display:flex!important;flex-direction:column;justify-content:space-between}
.sp2-process.sm-process>div>div{display:block!important}
.sp2-process.sm-process>div h3{font-size:clamp(21px,2vw,31px)!important;line-height:1.15!important;min-height:2.4em!important;margin-bottom:18px!important}
.sp2-process.sm-process>div p{font-size:16px!important;line-height:1.55!important;margin:0!important}
.sp2-process.sm-process>div.is-open{flex-grow:1.6;background:#080808;color:#fff}
.sp2-process.sm-process>div.is-open h3,.sp2-process.sm-process>div.is-open p,.sp2-process.sm-process>div.is-open span{color:#fff!important}
.sp2-process.sm-process>div:focus-visible{outline:2px solid #fff;outline-offset:-5px}
/* Reels remain click-to-play and become an ordinary 16:9 player after opening. */
.sm-porthole{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#080808;margin:36px 0 26px;isolation:isolate}
.sm-porthole-button{width:100%;height:100%;padding:0;border:0;background:transparent;color:#fff;cursor:pointer;position:relative;font:inherit;display:block}
.sm-porthole-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:circle(27% at 50% 50%);filter:brightness(.8);transition:clip-path .85s var(--sm-ease),filter .7s,transform .9s var(--sm-ease)}
.sm-porthole-button::before{content:'';position:absolute;inset:13% 29%;border:1px solid #777;border-radius:50%;pointer-events:none;transition:transform .85s var(--sm-ease),opacity .5s}
.sm-porthole-button:hover .sm-porthole-poster,.sm-porthole-button:focus-visible .sm-porthole-poster,.sm-porthole.is-peeking .sm-porthole-poster{clip-path:circle(73% at 50% 50%);filter:brightness(.9);transform:scale(1.025)}
.sm-porthole-button:hover::before,.sm-porthole-button:focus-visible::before,.sm-porthole.is-peeking .sm-porthole-button::before{transform:scale(1.65);opacity:0}
.sm-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:74px;height:74px;border:1px solid #fff;border-radius:50%;background:#08080888;font-size:24px;transition:background .3s,scale .4s}
.sm-porthole-button:hover .sm-play{background:var(--sm-red);scale:1.06}
.sm-porthole-label{position:absolute;left:28px;bottom:25px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;text-align:left;background:#080808aa;padding:10px 12px}
.sm-porthole iframe{border:0;position:absolute;inset:0;width:100%;height:100%}
.sm-porthole-button:focus-visible{outline:2px solid var(--sm-red);outline-offset:-5px}
.sp2-studio-reel:has(.sm-porthole)>.sp2-video{padding:0!important;height:auto!important;aspect-ratio:auto!important}
.sp2-studio-reel .sm-porthole{margin:0}
.sp2-awards>.sm-porthole{max-height:620px}
.sp2-trophy-grid figure{transition:transform .5s var(--sm-ease)}
.sp2-trophy-grid figure:hover{transform:translateY(-6px)}
.sp2-trophy-grid figure h2,.sp2-awards-index a,.sp2-award-festival summary{transition:color .3s}
.sp2-trophy-grid figure:hover h2,.sp2-awards-index a:hover,.sp2-award-festival summary:hover{color:var(--sm-red)!important}
/* Artwork viewer: full art plus movable 2.5x lens; explicit zoom and pan on touch. */
.sm-art-dialog{position:fixed;inset:0;width:min(1200px,96vw);max-width:96vw;height:min(94svh,1050px);max-height:94svh;margin:auto;padding:20px;background:#111;color:#fff;border:1px solid #555;overflow:hidden;box-sizing:border-box;z-index:100000}
.sm-art-dialog[open]{display:flex;flex-direction:column;gap:12px}
.sm-art-dialog::backdrop{background:#000e}
.sm-art-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;flex-shrink:0}
.sm-art-controls{display:flex;align-items:center;gap:8px}
.sm-art-dialog button{font:inherit;font-size:13px;line-height:1.5;border:1px solid #555;color:#fff;background:transparent;border-radius:0;padding:9px 14px;cursor:pointer}
.sm-art-dialog button:hover,.sm-art-dialog button:focus-visible{color:var(--sm-red);border-color:var(--sm-red)}
.sm-art-dialog button:disabled{opacity:.4;cursor:default}
.sm-art-stage{position:relative;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;display:grid;place-items:center;touch-action:pan-x pan-y pinch-zoom}
.sm-art-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none}
.sm-art-stage.is-zoomed{display:block;cursor:grab}
.sm-art-stage.is-dragging{cursor:grabbing}
.sm-art-stage.is-zoomed .sm-art-image{max-width:none;max-height:none;object-fit:initial;margin:auto;pointer-events:none}
.sm-art-lens{display:none;position:fixed;width:200px;height:200px;border:2px solid #fff;border-radius:50%;box-shadow:0 5px 40px #0009;pointer-events:none;background-repeat:no-repeat;background-color:#080808;z-index:2}
.sm-art-caption{margin:0!important;color:#ccc!important;font:inherit!important;font-size:12px!important;line-height:1.5!important;flex-shrink:0}
.sm-art-help{font-size:12px;color:#aaa;line-height:1.5}
.sm-art-button{position:relative}
.sm-art-button::after{content:'+';position:absolute;right:12px;bottom:12px;width:30px;height:30px;display:grid;place-items:center;border:1px solid #fff;border-radius:50%;color:#fff;background:#080808aa;font-size:20px;pointer-events:none}
/* Contact */
.sp2-contact-page h1.sm-type{cursor:default}
.sm-type .sm-letter{display:inline-block;transition:transform .55s var(--sm-ease),color .4s;transition-delay:calc(var(--i)*18ms)}
.sm-type:hover .sm-letter{transform:translateY(calc(var(--lift)*1px));color:var(--sm-red)}
.sp2-contact-page .sp-contact-grid a{position:relative;background:linear-gradient(var(--sm-red),var(--sm-red)) left bottom/0 1px no-repeat;transition:background-size .4s,color .3s}
.sp2-contact-page .sp-contact-grid a:hover{background-size:100% 1px;color:var(--sm-red)}
.sm-copy{margin-top:15px;display:block;background:transparent;border:1px solid #555;border-radius:0;padding:8px 12px;color:#aaa;font:inherit;font-size:12px;cursor:pointer;transition:color .3s,border-color .3s}
.sm-copy:hover{border-color:var(--sm-red);color:var(--sm-red)}
.sm-contact-route{width:160px;height:54px;margin:25px 0 0;color:var(--sm-red);overflow:visible}
.sm-contact-route path{stroke:currentColor;stroke-width:1.3;fill:none;stroke-dasharray:200;stroke-dashoffset:200;transition:stroke-dashoffset 1s var(--sm-ease)}
.sm-contact-route.sm-visible path{stroke-dashoffset:0}
.sm-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
@media(max-width:900px){
 .sp2-process.sm-process{display:grid!important;grid-template-columns:1fr 1fr!important}
 .sp2-process.sm-process>div{min-height:300px}
 .sp2-cap-index.sm-skills-index{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 .sm-skill-symbol{width:60px;height:60px;flex-basis:60px;margin-bottom:18px}
 .sp2-cap-index.sm-skills-index>a{gap:12px;padding:22px 9px!important;font-size:14px!important;flex-direction:column;align-items:flex-start}
 .sp2-cap-index .sm-skill-symbol{width:52px;height:52px;flex-basis:52px}
 .sp2-process.sm-process{display:flex!important;flex-direction:column}
 .sp2-process.sm-process>div{min-height:0;padding:24px!important;gap:24px;border-right:0!important;border-bottom:1px solid #ffffff50}
 .sp2-process.sm-process>div h3{min-height:0!important}
 .sm-porthole{margin:28px 0;min-height:220px;aspect-ratio:4/3}
 .sm-porthole.is-playing{aspect-ratio:16/9;min-height:0}
 .sm-porthole-label{left:12px;bottom:12px;font-size:11px;padding:7px}
 .sm-play{width:54px;height:54px;font-size:19px}
 .sm-art-dialog{padding:12px;height:94svh;gap:8px}
 .sm-art-dialog button{padding:8px 10px;font-size:12px}
 .sm-art-help{max-width:90%;font-size:11px}
 .sm-art-lens{width:150px;height:150px}
}
@media(prefers-reduced-motion:reduce){
 .sm-depth *,.sm-nav,.sm-nav::before,.sm-nav::after,.sm-cta::before,.sm-cta::after,.sm-icon *,.sm-type .sm-letter,.sm-porthole *,.sm-process>div,.sm-client-dive::before{animation:none!important;transition:none!important}
 .sm-depth:hover .sm-depth-media,.sm-depth:hover .sm-depth-media img,.sm-depth:hover h3,.sm-depth:hover figcaption,.sm-depth:hover .pg-title-link,.sm-type:hover .sm-letter{transform:none!important}
 .sm-invitation::before{display:none}
 .sm-icon *{stroke-dashoffset:0!important}
}
/* Typography remains whole. Only Sail Together has letter-by-letter motion. */
main :is(h1,h2,h3):not(.sm-type),.pg-title-link,.np-label,.sp2-fact strong{transition:color .28s ease!important}
main :is(h1,h2,h3):not(.sm-type):hover,.pg-title-link:hover,.np-label:hover,.sp2-fact:hover strong{color:var(--sm-title-hover,#fb4243)!important}
.sp3-services-red,.sp2-red,.sp2-cap-hero{--sm-title-hover:#fff}
.sm-depth :is(h3,figcaption,.pg-title-link,.np-label),.sm-depth:hover :is(h3,figcaption,.pg-title-link,.np-label),.sm-depth h3 span,.sm-depth:hover h3 span{transform:none!important;translate:none!important;animation:none!important}
.sp2-cap-tags>span{transition:color .28s ease,border-color .28s ease!important}
.sp2-cap-tags>span:hover{color:#fb4243!important;border-color:#fb4243!important}
.sm-text-link{background-image:linear-gradient(var(--sm-red),var(--sm-red))!important;background-repeat:no-repeat!important;background-position:left bottom!important;background-size:0 1px!important;transition:background-size .45s var(--sm-ease),color .3s!important;text-decoration:none!important}
.sm-text-link:hover,.sm-text-link:focus-visible,a:hover>.sm-text-link,a:hover .np-label.sm-text-link{background-size:100% 1px!important}
.sp2-cap-index .sm-text-link{background-image:linear-gradient(currentColor,currentColor)!important}
.sm-fact{position:relative}
.sm-fact::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--sm-red);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--sm-ease)}
.sm-fact:hover::after{transform:scaleX(1)}
/* More work uses the native linked background image, with the same tilt as project cards. */
body.single-project .semplice-next-prev .np-link.sm-depth{overflow:visible!important}
body.single-project .semplice-next-prev .np-link.sm-depth .np-bg{transition:transform .6s var(--sm-ease),box-shadow .6s var(--sm-ease)!important}
body.single-project .semplice-next-prev .np-link.sm-depth:hover .np-bg{transform:translate(-3px,-5px) rotateX(var(--sm-rx)) rotateY(var(--sm-ry)) scale(.985)!important;box-shadow:7px 8px 0 var(--sm-red)!important}
body.single-project .semplice-next-prev .np-link.sm-depth:hover .np-label{color:var(--sm-red)!important}
.sm-filter-ghost .sp2-card-categories{font-size:12px;color:#999;text-transform:uppercase}
.sm-filter-ghost .thumb-inner{overflow:hidden}
.sm-filter-ghost .thumb-hover{display:none!important}
.sm-filter-ghost img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
/* Full, uncropped 16:9 reel on every viewport. */
.sp2-awards>.sm-porthole,.sm-porthole,.sm-porthole.is-playing{height:auto!important;max-height:none!important;min-height:0!important;aspect-ratio:16/9!important}
.sm-porthole{overflow:hidden}
.sm-porthole-poster{object-fit:contain!important;transform:none!important}
.sm-porthole-button:hover .sm-porthole-poster,.sm-porthole-button:focus-visible .sm-porthole-poster,.sm-porthole.is-peeking .sm-porthole-poster{transform:none!important}
.sm-porthole iframe{height:100%!important;width:100%!important;aspect-ratio:16/9;visibility:hidden;pointer-events:none}
.sm-porthole.is-playing iframe{visibility:visible;pointer-events:auto}
.sm-porthole-button{z-index:1}
.sm-porthole-button[hidden]{display:none!important}
.sm-award-link{display:block!important;color:inherit;text-decoration:none!important;overflow:visible}
.sm-award-link img{width:100%;display:block}
.sp2-award-festival{scroll-margin-top:112px}
.sm-gallery-zoom{position:absolute!important;right:18px;bottom:18px;z-index:6;border:1px solid #fff!important;border-radius:50%;width:42px;height:42px;padding:0!important;display:grid;place-items:center;background:#080808bb;color:#fff;font:inherit;font-size:26px;line-height:1;cursor:zoom-in;transition:background .25s,scale .35s}
.sm-gallery-zoom:hover,.sm-gallery-zoom:focus-visible{background:#fb4243;scale:1.06}
.semplice-gallery[data-sm-gallery] .sgs-slide img{cursor:zoom-in}
/* Image-only parallax, native scrolling, bounded displacement. */
.sm-parallax{translate:0 var(--sm-scroll,0px);transition:translate .16s linear}
body.is-frontend.single-project.sp3-project-page .semplice-cover smp-cover-image.sm-parallax{transform:scale(1.05)!important}
@media(max-width:767px),(hover:none){.sm-parallax{translate:none!important}body.is-frontend.single-project.sp3-project-page .semplice-cover smp-cover-image.sm-parallax{transform:none!important}}
@media(prefers-reduced-motion:reduce){
 .sm-orbit-float{animation:none!important;transform:none!important}
 .sm-parallax{translate:none!important;transition:none!important}
 body.is-frontend.single-project.sp3-project-page .semplice-cover smp-cover-image.sm-parallax,body.single-project .semplice-next-prev .np-link.sm-depth:hover .np-bg{transform:none!important}
}

.sm-porthole.is-playing.sm-parallax{translate:none!important}

/* Content reveal uses finite native animations, not a scroll loop. */
@media(max-width:900px){
 .sp3-services-red .sp-split>div:first-child{grid-template-columns:1fr;gap:24px}
 .sp3-services-red .sp-split>div:first-child>p:last-child{max-width:600px}
 .sp3-services-red .sp-services{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 28px!important}
 #content_e23c423cc>.is-content:has(.sm-work-symbol){grid-template-columns:minmax(0,1.4fr) minmax(140px,.7fr);padding-right:16px!important;column-gap:20px;min-height:200px}
 .sm-work-symbol{width:180px;height:180px}
}
@media(max-width:600px){
 .sp3-services-red h2{font-size:40px!important}
 .sp3-services-red .sp-split>div:first-child{margin-bottom:32px;gap:18px}
 .sp3-services-red .sp-split>div:first-child>p:last-child{font-size:16px!important}
 .sp3-services-red .sp-service h3{font-size:21px!important}
 .sp3-services-red .sp-service p{font-size:14px!important;line-height:1.55!important}
 .sp3-services-red .sp-service .sm-skill-symbol{width:64px;height:64px}
 .sp3-services-red .sp-services{gap:0 18px!important}
 #content_e23c423cc>.is-content:has(.sm-work-symbol){grid-template-columns:minmax(0,1fr) 102px;column-gap:12px;min-height:155px;padding-right:0!important}
 .sm-work-symbol{width:102px;height:102px}
 .sp2-cap-index .sm-skill-symbol{width:66px;height:66px;flex-basis:66px}
}
@media(prefers-reduced-motion:reduce){main h1,main h2,main h3,.sm-text-link,.sp2-cap-tags>span{transition:none!important}}
@media(max-width:600px){
 #content_e23c423cc>.is-content:has(.sm-work-symbol){grid-template-columns:minmax(0,1fr) 112px;row-gap:12px;min-height:0!important}
 #content_e23c423cc>.is-content>p{grid-column:1;grid-row:1;align-self:center}
 #content_e23c423cc>.is-content>h1{grid-column:1/-1;grid-row:2;font-size:clamp(36px,9.5vw,48px)!important;line-height:1.05!important;word-break:normal!important;overflow-wrap:normal!important}
 .sm-work-symbol{grid-column:2;grid-row:1;width:112px;height:112px}
}
main :is(h1,h2,h3):not(.sm-type) :is(span,b,strong){color:inherit!important;transition:color .28s ease!important}
#content-holder :is(h1,h2,h3):not(.sm-type):hover{color:var(--sm-title-hover,#fb4243)!important}
#content-holder :is(h1,h2,h3):not(.sm-type) :is(span,b,strong){color:inherit!important;transition:color .28s ease!important}

/* Middle-ground title response: move the intact text 2px, never change its metrics. */
#content-holder .sm-title-hover{translate:0 0;transition:color .32s ease,translate .42s cubic-bezier(.22,1,.36,1)!important}
@media(hover:hover) and (pointer:fine){
 #content-holder .sm-title-hover:hover{translate:0 -2px}
}
#content-holder .sm-depth :is(h1,h2,h3,.pg-title-link,.np-label){translate:none!important}
@media(prefers-reduced-motion:reduce){
 #content-holder .sm-title-hover,#content-holder .sm-title-hover:hover{translate:none!important;transition:none!important}
}

/* The three editorial openings share an edge and a two-column balance.
   CSS only: native Semplice text, links, translations and content order stay intact. */
.sailor-polish.sp3-page-shell.sp2-page>header>h1,
.sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>h1,
.sailor-polish.sp3-page-shell.sp2-awards>h1{font-size:clamp(60px,6.4vw,96px)!important;line-height:1.04!important;letter-spacing:-.05em!important;max-width:none!important;text-wrap:balance}
.sailor-polish.sp3-page-shell.sp2-page>header .sp-lead{font-size:clamp(18px,1.4vw,21px)!important;line-height:1.55!important;max-width:42ch!important;color:#c6c6c6!important}
.sailor-polish.sp3-page-shell.sp2-page>header>.sp-split>div>p,
.sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>p:not(.sp3-page-kicker),
.sailor-polish.sp3-page-shell.sp2-awards>.sp2-awards-intro{font-size:clamp(17px,1.35vw,20px)!important;line-height:1.65!important;font-weight:400!important;max-width:52ch!important}
@media(min-width:1024px){
 .sailor-polish.sp3-page-shell.sp2-page>header,
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero,
 .sailor-polish.sp3-page-shell.sp2-awards{display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:clamp(48px,6vw,96px);row-gap:0;align-items:start}
 .sailor-polish.sp3-page-shell.sp2-page>header>.sp3-page-kicker,
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>.sp3-page-kicker,
 .sailor-polish.sp3-page-shell.sp2-awards>.sp3-page-kicker{grid-column:1/-1;grid-row:1;margin-bottom:32px!important}

 /* Studio: the short lead supports the title; the story starts beside it. */
 .sailor-polish.sp3-page-shell.sp2-page>header>h1{grid-column:1;grid-row:2;margin:0 0 28px!important}
 .sailor-polish.sp3-page-shell.sp2-page>header>.sp-split{display:contents!important}
 .sailor-polish.sp3-page-shell.sp2-page>header>.sp-split>.sp-lead{grid-column:1;grid-row:3;margin:0!important;align-self:start}
 .sailor-polish.sp3-page-shell.sp2-page>header>.sp-split>div{grid-column:2;grid-row:2/4;padding-top:8px;align-self:start;min-width:0}
 .sailor-polish.sp3-page-shell.sp2-page>header>.sp-split>div>p{margin:0 0 24px!important}
 .sailor-polish.sp3-page-shell.sp2-page>header>.sp-split>div>.sp-link{margin-top:2px!important}
 .sailor-polish.sp3-page-shell.sp2-page>.sp2-studio-reel{padding-top:48px!important}

 /* Craft: title and invitation in parallel, followed by the full-width skills grid. */
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>h1{grid-column:1;grid-row:2/4;margin:0!important;align-self:start}
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>p:not(.sp3-page-kicker){grid-column:2;grid-row:2;margin:4px 0 0!important}
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>.sp-link{grid-column:2;grid-row:3;justify-self:start;margin-top:22px!important}
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>.sp2-cap-index{grid-column:1/-1;grid-row:4;margin-top:56px!important}

 /* Awards: the two short passages balance the title as a single reading column. */
 .sailor-polish.sp3-page-shell.sp2-awards>*{grid-column:1/-1;min-width:0}
 .sailor-polish.sp3-page-shell.sp2-awards>h1{grid-column:1;grid-row:2/4;margin:0!important}
 .sailor-polish.sp3-page-shell.sp2-awards>h1+.sp2-awards-intro{grid-column:2;grid-row:2;align-self:end;margin:0!important}
 .sailor-polish.sp3-page-shell.sp2-awards>.sp2-awards-intro+.sp2-awards-intro{grid-column:2;grid-row:3;align-self:start;margin:20px 0 0!important}
 .sailor-polish.sp3-page-shell.sp2-awards>.sm-porthole{margin-top:56px!important}
 /* Longer localized headlines retain their intended line count. */
 body[data-sp7-locale="es"] .sailor-polish.sp3-page-shell.sp2-page>header>h1{font-size:clamp(56px,5.8vw,88px)!important}
 body:is([data-sp7-locale="pt"],[data-sp7-locale="es"]) .sailor-polish.sp3-page-shell.sp2-awards>h1{font-size:clamp(52px,5.2vw,80px)!important}
}
@media(max-width:1023px){
 .sailor-polish.sp3-page-shell.sp2-page>header>h1,
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>h1,
 .sailor-polish.sp3-page-shell.sp2-awards>h1{font-size:clamp(44px,8.2vw,76px)!important;line-height:1.06!important;margin-bottom:28px!important}
 .sailor-polish.sp3-page-shell.sp2-page>header>.sp-split{grid-template-columns:1fr!important;gap:20px!important}
 .sailor-polish.sp3-page-shell.sp2-page>header .sp-lead{margin:0!important;max-width:52ch!important}
 .sailor-polish.sp3-page-shell.sp2-page>header>.sp-split>div>p{margin-bottom:20px!important}
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>p:not(.sp3-page-kicker),
 .sailor-polish.sp3-page-shell.sp2-awards>.sp2-awards-intro{margin-bottom:20px!important}
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>.sp-link{margin-top:8px!important}
 .sailor-polish.sp3-page-shell.sp2-capabilities>.sp2-cap-hero>.sp2-cap-index{margin-top:40px!important}
}
