@font-face{font-family:RayanManrope;src:url(assets/brand/manrope.woff2) format('woff2');font-weight:200 800;font-display:swap}@font-face{font-family:RayanBenzin;src:url(assets/brand/benzin.woff2) format('woff2');font-weight:500;font-display:swap}
body>header,main>.section,main>.work-section,body>footer,.portfolio-main,.work-viewer,.case-main{font-family:RayanManrope,Arial,sans-serif}
main>.directions .section-heading h2,main>.work-section h2,.portfolio-intro h1,.case-main h1{font-family:RayanManrope,Arial,sans-serif;font-weight:500;letter-spacing:0}
main>.directions{position:relative;overflow:hidden;background:#f1f7fc}main>.directions:before{content:'';position:absolute;pointer-events:none;right:-3%;top:15px;width:280px;height:200px;background:url(assets/brand/rayan-mark.webp) center/contain no-repeat;opacity:.07}.service-list{position:relative}.service-row{border-top:2px solid transparent;transition:background .3s,border-color .3s}.service-row:hover{border-top-color:#5dbe7b}.service-row:last-child{background:linear-gradient(135deg,#2b3175,#054f9c)}
main>.process{position:relative;isolation:isolate;background:linear-gradient(125deg,#2b3175,#054f9c);color:#fff;overflow:hidden}main>.process:after{content:'';position:absolute;inset:0;z-index:-1;opacity:.1;background:repeating-linear-gradient(135deg,transparent 0 120px,#fff 121px,transparent 122px)}main>.process .eyebrow,main>.process .process-intro>p:not(.eyebrow){color:#d2e6f8}main>.process .text-link{color:#a7e4b7}main>.process .step{background:#ffffff09;border-color:#ffffff30}main>.process .step p{color:#d2e6f8}main>.process .step h3{color:#fff}main>.process .step-num{color:#8fdea6}.case-links{margin:50px 0 10px;border-top:1px solid #d9e3ee}.case-links summary{padding:22px 0;cursor:pointer;font-weight:600}.case-links nav{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px 0;font-size:14px}.case-links a:hover{color:#01509c}.case-main{padding:140px 6vw 70px;max-width:1600px;margin:auto}.case-main h1{font-size:clamp(28px,4vw,62px);line-height:1.15;max-width:1100px}.case-intro{font-size:clamp(17px,1.6vw,22px);line-height:1.7;max-width:850px;margin:30px 0 45px}.case-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:30px 0}.case-media img,.case-media video{width:100%;height:clamp(260px,42vw,650px);object-fit:contain;background:#eef3f8;border-radius:3px}.case-main .case-back{display:inline-block;margin:15px 0 30px;color:#01509c}.case-main .button{margin:20px 0}.case-language{display:flex;gap:20px}.case-language a[aria-current]{color:#01509c;border-bottom:1px solid}.work-card{color:inherit;text-align:left}.work-detail-link{display:inline-block;color:#01509c;border-bottom:1px solid;padding-bottom:5px;margin-top:18px}
@media(max-width:700px){.case-links nav{grid-template-columns:1fr 1fr;font-size:13px}.case-media{grid-template-columns:1fr}.case-main{padding-top:115px}main>.directions:before{width:180px}.case-media img,.case-media video{height:auto;max-height:75svh}.process .steps{gap:12px}}

main>.process .step>span{color:#a7e4b7}.work-viewer .work-detail-link{color:#a7e4b7}.case-main .case-language{font-size:15px}

.feature-images{position:absolute;inset:0 0 0 30%;overflow:hidden}.feature-images img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 1.6s ease}.feature-images img.is-active{opacity:1}.feature-scene:after{pointer-events:none;background:linear-gradient(90deg,#112649 0%,#112649f5 24%,#11264988 48%,#1126490a 85%)}.feature-copy{z-index:2}.feature-controls{display:flex;gap:10px;align-items:center;margin-top:30px}.feature-controls button{display:flex;align-items:center;justify-content:center;width:44px;height:38px;border:0;border-bottom:2px solid #ffffff45;background:transparent;color:#ffffffb0;font-size:13px}.feature-controls button[aria-pressed=true]{border-color:#7fdf9b;color:white}.feature-controls button:last-child{margin-left:10px;border:1px solid #ffffff45;width:38px}.feature-controls svg{width:18px;height:18px}.feature-copy h2{font-family:RayanManrope,Arial,sans-serif;font-weight:500;font-size:clamp(42px,5.1vw,82px)}
@media(max-width:700px){.feature-images{inset:0 0 200px}.feature-images img{object-fit:cover;object-position:center}.feature-scene{height:740px;display:flex;align-items:end;padding-bottom:32px}.feature-scene:after{background:linear-gradient(180deg,#11264900 22%,#11264988 42%,#112649 68%)}.feature-copy h2{font-size:40px;margin:20px 0}.feature-copy p:not(.eyebrow){max-width:320px}.feature-controls{margin-top:18px}}
@media(prefers-reduced-motion:reduce){.feature-images img{transition:none}}

/* Shared typography across home, catalogue and project pages. */
body{font-family:RayanManrope,Arial,sans-serif}button,input,select,textarea{font-family:inherit}
body :is(h1,h2,h3,.work-name,.stage-name){font-family:RayanManrope,Arial,sans-serif!important;letter-spacing:0!important;line-height:1.15}
body :is(h1,h2){font-weight:600}body h3{font-weight:600}
.assembly .hero-copy h1{line-height:1.06}.assembly .hero-copy .eyebrow{line-height:1.5}
main>.process .process-intro h2,main>.process .step h3{color:#fff}
main>.process .process-intro>p:not(.eyebrow),main>.process .step p{color:#edf4ff}
main>.process .step,main>.process .step:first-child,main>.process .step:nth-child(even){background:transparent;border:0;box-shadow:none;padding:0 24px 0 0}
main>.process .step>span{color:#a7e4b7;letter-spacing:0;font-variant-numeric:tabular-nums}
main>.process .steps{gap:36px 24px}
main>.directions .service-row:last-child,main>.directions .service-row:last-child h3{color:#fff}
main>.directions .service-row:last-child p{color:#edf4ff}
main>.directions .service-row:last-child .service-icon,main>.directions .service-row:last-child .arrow{color:#a7e4b7}
.feature-copy h2{color:#fff;line-height:1.12;text-transform:none}
.feature-copy p:not(.eyebrow){color:#f0f5ff}
.feature-images img{object-position:center}
@media(max-width:700px){main>.process .step,main>.process .step:first-child,main>.process .step:nth-child(even){padding:0}.feature-copy h2{font-size:40px}.section-heading h2{overflow-wrap:anywhere}}

/* Seamless presentation banners; generated editorial illustrations remain outside project evidence. */
.feature-scene{background:#112649;height:clamp(560px,46vw,780px);min-height:0}
.feature-images{inset:0;mask-image:linear-gradient(90deg,transparent 0%,#000 34%,#000 100%)}
.feature-images img{object-fit:cover;object-position:center}
.feature-scene:after{background:linear-gradient(90deg,#112649 0%,#112649ef 20%,#112649a0 35%,#11264900 65%)}
.feature-copy{width:42%;max-width:600px}.feature-copy h2{font-size:clamp(42px,4.6vw,72px)}
.contact-details .has-contact-icon,footer .has-contact-icon,#contact .button.has-contact-icon{display:flex;align-items:center;gap:13px}
.contact-details p.has-contact-icon{align-items:flex-start}.contact-symbol{display:block;width:23px;height:23px;min-width:23px;flex:0 0 23px;color:#01509c}.has-contact-icon>span{min-width:0}.contact-details p .contact-symbol{margin-top:2px}#contact .button .contact-symbol{color:currentColor}#contact .button.has-contact-icon{display:inline-flex}
@media(max-width:700px){.feature-scene{height:740px}.feature-images{inset:0 0 210px;mask-image:linear-gradient(180deg,#000 0%,#000 65%,transparent 100%)}.feature-images img{object-position:78% center}.feature-scene:after{background:linear-gradient(180deg,transparent 25%,#11264955 42%,#112649 70%)}.feature-copy{width:100%;max-width:100%}.feature-copy h2{font-size:40px}.contact-symbol{width:21px;height:21px;min-width:21px;flex-basis:21px}}

/* Contact contrast and scroll-synchronised diagonal graphic layer. */
.contact-details .contact-symbol,footer .contact-symbol{color:#5eac74;stroke-width:1.9;width:25px;height:25px;min-width:25px;flex-basis:25px;opacity:1;visibility:visible}
#contact .button .contact-symbol{color:#fff;width:26px;height:26px;min-width:26px;flex-basis:26px;stroke-width:1.7}
.assembly-flow{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;mask-image:linear-gradient(90deg,#0002 0%,#0005 32%,#000 58%)}
.assembly-flow>svg{display:block;width:100%;height:100%;overflow:visible}
.flow-ribbon{fill:none;transform-origin:center;will-change:transform}.flow-green{color:#5eac74}.flow-blue{color:#01509c}
.flow-rail{stroke:currentColor;stroke-width:1;opacity:.2}.flow-travel{stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-dasharray:.2 .8;opacity:.65}
.flow-third .flow-travel,.flow-fourth .flow-travel{stroke-width:1.6;stroke-dasharray:.11 .89;opacity:.45}
@media(max-width:700px){.assembly-flow{mask-image:linear-gradient(180deg,transparent 0%,#0002 32%,#000 65%)}.flow-third,.flow-fourth{display:none}.flow-travel{stroke-width:2}.contact-details .contact-symbol{width:23px;height:23px;min-width:23px;flex-basis:23px}}
@media(prefers-reduced-motion:reduce){.assembly-flow{display:none}}

.assembly-corner-accent{position:absolute;right:3%;bottom:120px;width:clamp(100px,12vw,190px);height:110px;z-index:1;pointer-events:none;animation:corner-flight 5.9s linear -1.7s infinite;will-change:transform}
.assembly-corner-accent svg{width:100%;height:100%;display:block;overflow:visible}
.assembly-corner-accent path{fill:none;stroke:#5eac74;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:.38 .62}
@keyframes corner-flight{0%{transform:translate(-32vw,16vw);opacity:0}6%{transform:translate(-27.5vw,13.75vw);opacity:.8}66%{transform:translate(17.5vw,-8.75vw);opacity:.8}72%{transform:translate(22vw,-11vw);opacity:0}100%{transform:translate(22vw,-11vw);opacity:0}}
@media(max-width:700px){.assembly-corner-accent{right:4%;bottom:100px;width:100px;height:64px}}
@media(prefers-reduced-motion:reduce){.assembly-corner-accent{display:none;animation:none}}

.hero-metal-emblem{position:absolute;inset:13.45% auto auto 11.3%;width:71.4%;height:73.1%;object-fit:contain;z-index:3;pointer-events:none;will-change:transform,opacity}.has-hero-emblem .assembly-render{will-change:opacity}.has-hero-emblem #loading{display:none}
@media(max-width:700px){.hero-metal-emblem{inset:9.05% auto auto 12.15%;width:69.7%;height:79.9%}}
@media(prefers-reduced-motion:reduce){.hero-metal-emblem{display:none}}
