/* Revision 22 October: contrast, atmosphere, branding and full-width gallery. */
.v2-brand{width:166px}.v2-header{height:76px}.v2-header.scrolled{height:70px}
.v2-inner .hero{background:#002856;color:#fff}.v2-inner .hero .hero__title,.v2-inner .hero .eyebrow{color:#fff}.v2-inner .hero .breadcrumb,.v2-inner .hero .hero__lead{color:#d4e1f0}.v2-inner .hero .breadcrumb a{color:#fff}.v2-inner .hero .btn--secondary{color:#fff;border-color:#fff}.v2-inner .hero :focus-visible{outline-color:#fff}
.v2-inner .cta-banner{background:#002856;box-shadow:0 24px 55px #00285618}.v2-inner .cta-banner .cta-banner__title{color:#fff}.v2-inner .cta-banner .cta-banner__lead{color:#d4e1f0}.v2-inner .cta-banner .btn--secondary{color:#fff;border-color:#fff}.v2-inner .cta-banner :focus-visible{outline-color:#fff}
.v2-inner main{background:#f2f5f9;padding-bottom:35px}.v2-inner .section{background:#f2f5f9}.v2-inner .section:nth-of-type(even):not(.section--navy){background:#e7eef6}.v2-inner .section--navy{background:#002856;color:#fff}.v2-inner .section--navy h2,.v2-inner .section--navy h3{color:#fff}.v2-inner .section .form{background:#fff}.v2-inner .section-header__lead{color:#485c72}.v2-inner .section--navy .section-header__lead{color:#d4e1f0}
.wa-fab{background:#25D366!important;color:#fff!important;box-shadow:0 8px 22px #075e5433}.wa-fab:hover{background:#1dbb59!important}
/* The source thumbnails have dark edge pixels: clip a small overscan, rather than painting over the photographs. */
.space-photo>img{position:absolute;inset:-8px;width:calc(100% + 16px);height:calc(100% + 16px);max-width:none;object-fit:cover;transform:scale(1.025)}.space-photo:hover>img{transform:scale(1.065)}
.learning-section{margin-inline:0;border-radius:36px;background:#dce7f3}.photo-ribbon{position:relative;width:100vw;max-width:none;left:50%;margin:30px 0 0 -50vw;padding:0;display:block;height:430px;overflow:hidden;cursor:grab;touch-action:pan-y;isolation:isolate}.photo-ribbon figure,.photo-ribbon figure:nth-child(even){position:absolute;left:0;top:18px;width:clamp(185px,16vw,260px);height:calc(clamp(185px,16vw,260px)*1.33333);aspect-ratio:3/4;margin:0;border-radius:24px;overflow:hidden;transform:none;transition:none;will-change:transform;box-shadow:0 12px 26px #0028560c;user-select:none}.photo-ribbon figure>img{width:100%;height:100%;object-fit:cover;transition:none;pointer-events:none}.photo-ribbon figure:hover>img{transform:none}.photo-ribbon .uniform-mark{position:absolute;height:auto!important;object-fit:contain!important;z-index:2;pointer-events:none;border-radius:0!important}.ribbon-controls{margin:10px 0 40px}.ribbon-controls button{width:44px;height:44px}.ribbon-controls .ribbon-pause{width:auto;padding:0 16px;border-radius:25px;font-size:12px;font-weight:600}.photo-ribbon.dragging{cursor:grabbing}
.v2-hero-art .uniform-mark{position:absolute;height:auto;z-index:2;pointer-events:none;border-radius:0}.v2-hero-art>img:first-child{width:100%}
.footer-v3{background:#001e43;color:#fff;padding:85px 0 30px;border-radius:38px 38px 0 0;overflow:hidden}.footer-v3-grid{display:grid;grid-template-columns:1.5fr .8fr 1fr;gap:8%}.footer-v3-brand>img{width:210px;height:auto}.footer-promise{font-size:clamp(25px,2.5vw,37px);font-weight:600;letter-spacing:-.045em;line-height:1.2;margin:35px 0 20px}.footer-v3-brand>p:not(.footer-promise){font-size:13px;color:#d2deec}.footer-v3 h2{font-size:16px;letter-spacing:-.02em;color:#fff;margin:0 0 25px}.footer-v3 nav{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.footer-v3 nav h2{margin-bottom:10px}.footer-v3 a{font-size:13px;color:#d2deec;transition:color .2s}.footer-v3 a:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}.footer-social{display:flex;gap:20px;margin-top:27px}.footer-social a{padding-bottom:6px;border-bottom:1px solid #ffffff55;color:#fff}.footer-contact{display:flex;flex-direction:column;gap:18px}.footer-contact h2{margin-bottom:6px}.footer-contact small{display:block;color:#fff;font-size:11px;font-weight:600;margin-bottom:4px}.footer-contact p{font-size:13px;color:#d2deec}.footer-v3-wordmark{font-size:clamp(45px,9vw,144px);line-height:1.15;letter-spacing:-.075em;font-weight:650;color:#fff;opacity:.95;margin-top:75px;padding-bottom:45px;white-space:nowrap;display:flex;align-items:center;justify-content:space-between}.footer-v3-wordmark span{color:#ff3441;font-weight:400;font-size:1.15em;padding-left:20px}.footer-v3-bottom{border-top:1px solid #ffffff28;padding-top:25px;display:flex;justify-content:space-between;align-items:center;gap:25px}.footer-v3-bottom p,.footer-v3-bottom a{font-size:11px;color:#c3d2e4}.footer-v3-bottom>div:first-child{display:flex;gap:24px;flex-wrap:wrap}.sparkweb-credit{display:flex;align-items:center;gap:16px}.sparkweb-credit>span{font-size:10px;color:#c3d2e4}.sparkweb-credit strong{font-size:23px;letter-spacing:-1px;font-weight:600;display:flex;align-items:center;gap:8px}.sparkweb-credit strong span{font-size:27px;color:#ff3441}.footer-v3 :focus-visible{outline-color:#fff}
@media(min-width:1700px){.photo-ribbon{height:445px}}
@media(max-width:850px){.v2-brand{width:150px}.v2-header{height:68px}.footer-v3-grid{grid-template-columns:1.2fr 1fr;gap:40px}.footer-v3-brand{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:15px 40px}.footer-v3-brand>img{width:185px}.footer-promise{margin:0;grid-column:2;grid-row:span 2}.footer-social{margin-top:0}.footer-v3-wordmark{margin-top:50px;padding-bottom:30px}.footer-v3-bottom{align-items:flex-start}.footer-v3-bottom>div:first-child{display:block}.sparkweb-credit{gap:8px;flex-direction:column;align-items:flex-end}.photo-ribbon{height:350px}.ribbon-controls{gap:15px}.ribbon-controls>div{gap:6px}}
@media(max-width:560px){.v2-brand{width:142px}.v2-header.scrolled{height:66px}.v2-inner .hero{padding-block:45px}.v2-inner .section{padding-block:48px}.footer-v3{padding-top:50px;border-radius:28px 28px 0 0}.footer-v3-grid{gap:36px 24px;grid-template-columns:1fr 1fr}.footer-v3-brand{display:block}.footer-v3-brand>img{width:180px}.footer-promise{margin:25px 0 16px;font-size:30px}.footer-social{margin-top:22px}.footer-v3 h2{font-size:14px}.footer-v3 nav a,.footer-contact a,.footer-contact p{font-size:11px;overflow-wrap:anywhere}.footer-v3-wordmark{font-size:8.7vw;letter-spacing:-.065em;margin-top:42px;padding-bottom:26px}.footer-v3-wordmark span{padding-left:5px}.footer-v3-bottom{gap:18px}.footer-v3-bottom p,.footer-v3-bottom a{font-size:9px}.sparkweb-credit strong{font-size:20px}.sparkweb-credit>span{font-size:9px}.ribbon-controls>span{max-width:120px;font-size:11px}.ribbon-controls .ribbon-pause{padding:0 11px}.photo-ribbon{height:335px}.photo-ribbon figure,.photo-ribbon figure:nth-child(even){width:185px;height:247px}}
@media(prefers-reduced-motion:reduce){.photo-ribbon figure{will-change:auto}}
/* New segment photography keeps its original aspect ratio so badges remain anchored to the shirts. */
.stage-body .segment-photo,.journey-card .segment-photo{position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;border-radius:24px;isolation:isolate}
.stage-body .segment-photo>img:first-child,.journey-card .segment-photo>img:first-child{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:0}
.stage-body .segment-photo>.uniform-mark,.journey-card .segment-photo>.uniform-mark{position:absolute;height:auto;object-fit:contain;aspect-ratio:auto;border-radius:0;pointer-events:none;z-index:2}
@media(max-width:560px){.journey-card .segment-photo{grid-row:1}}
/* Revision 6: photographic inner pages, shared home invitation, official developer logo. */
.sparkweb-credit>img{display:block;width:138px;max-width:none;height:auto;object-fit:contain}
.v2-inner .hero .inner-hero-grid{grid-template-columns:1.12fr 1fr;gap:6%;align-items:center}
.v2-inner .hero .hero__title{font-size:clamp(32px,3.4vw,51px);line-height:1.13}
.v2-inner .hero .hero__lead{font-size:16px;line-height:1.75}
.inner-hero-photo{position:relative;width:100%;aspect-ratio:3/2;border-radius:28px;overflow:hidden;isolation:isolate}
.inner-hero-photo>img:first-child{display:block;width:100%;height:100%;object-fit:cover}
.v2-inner .segment-photo{position:relative;width:100%;aspect-ratio:3/2;border-radius:26px;overflow:hidden;isolation:isolate}
.v2-inner .segment-photo>img:first-child{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.v2-inner .segment-photo>.uniform-mark{position:absolute;height:auto;object-fit:contain;aspect-ratio:auto;border-radius:0;pointer-events:none;z-index:2}
.v2-inner .actual-photo>img{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);max-width:none;object-fit:cover}
.gallery__frame>picture{display:block;position:absolute;inset:-7px;overflow:hidden}
.gallery__frame>picture>img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;transform:scale(1.025)}
.gallery__item:hover .gallery__frame>picture>img{transform:scale(1.055)}
.v2-inner .v2-close{margin-top:35px;margin-bottom:0;background:#002856}
body:has(.rodape) .inner-hero-photo{margin:22px auto;max-width:440px}
.rodape .sparkweb-credit{justify-content:center;margin:25px auto 0}
@media(max-width:850px){.v2-inner .hero .inner-hero-grid{grid-template-columns:1fr;gap:30px}.inner-hero-photo{max-width:640px}.v2-inner .hero .hero__title{font-size:38px}.sparkweb-credit>img{width:120px}}
@media(max-width:560px){.v2-inner .hero .hero__title{font-size:32px}.v2-inner .hero .hero__lead{font-size:15px}.inner-hero-photo,.v2-inner .segment-photo{border-radius:20px}.sparkweb-credit>img{width:108px}}
/* Developer logo remains the same size when wrapped in its destination link. */
.sparkweb-credit>a{display:block;line-height:0}.sparkweb-credit>a>img{display:block;width:138px;max-width:none;height:auto;object-fit:contain}
@media(max-width:850px){.sparkweb-credit>a>img{width:120px}}
@media(max-width:560px){.sparkweb-credit>a>img{width:108px}}
/* Revision 7: timeline continuity and full-bleed framed photographs. */
.v2-inner .section.timeline-section{background:#e7eef6}
.timeline-section .timeline__marker,.timeline-section .timeline__dot{background:#e7eef6}
.timeline-section .timeline__year{text-align:center;line-height:1.12}
.v2-inner .media--3x2>picture,.v2-inner .media--16x9>picture{display:block;position:absolute;inset:-7px;overflow:hidden}
.v2-inner .media--3x2>picture>img,.v2-inner .media--16x9>picture>img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;transform:scale(1.02)}
/* Revision 8: compact floating navigation on scroll. */
.v2-header{transition:width .8s cubic-bezier(.22,1,.36,1),height .8s cubic-bezier(.22,1,.36,1),top .8s cubic-bezier(.22,1,.36,1),padding .8s cubic-bezier(.22,1,.36,1),box-shadow .8s}
.v2-header .v2-brand{transition:width .8s cubic-bezier(.22,1,.36,1)}
.v2-header .v2-visit{transition:padding .8s cubic-bezier(.22,1,.36,1)}
.v2-header.scrolled{width:min(1200px,calc(100% - 64px));height:62px;top:10px;padding:8px 12px 8px 24px;box-shadow:0 8px 30px #00285618}
.v2-header.scrolled .v2-brand{width:136px}
.v2-header.scrolled .v2-visit{padding:10px 18px}
@media(max-width:850px){.v2-header.scrolled{width:calc(100% - 32px);height:60px;padding:7px 12px 7px 20px}.v2-header.scrolled .v2-brand{width:128px}.v2-header.scrolled~.mobile-nav{top:80px!important}}
@media(prefers-reduced-motion:reduce){.v2-header,.v2-header .v2-brand,.v2-header .v2-visit{transition:none}}
