/* Top-page sections. Hero geometry and motion remain in styles.css/app.js. */
:root{--section-space:100px;--section-rule:#b7c1c9;--section-dark:#101519}
html{scroll-behavior:smooth;scroll-padding-top:24px}
.page-content{overflow:clip}
.section-shell{padding:var(--section-space) var(--gutter);position:relative;isolation:isolate}
.section-kicker{display:flex;gap:30px;align-items:center;font-size:11px;font-weight:500;letter-spacing:.09em;margin:0 0 34px}
.section-kicker span{font-weight:600}
.silver-section{background:linear-gradient(125deg,#fff 10%,#eef1f3 65%,#dce3e8)}
.silver-section:before{content:"";position:absolute;inset:0;background:url('assets/G01_back_plane.svg') right center/80% 130% no-repeat;opacity:.24;pointer-events:none;z-index:-1}
.statement{font-size:clamp(30px,3.5vw,52px);letter-spacing:.015em;line-height:1.4;margin:0;font-weight:600}
.mission{padding-top:72px;padding-bottom:80px}
.mission-grid{display:grid;grid-template-columns:1fr 1.1fr .45fr;gap:48px;align-items:start}
.section-copy{max-width:500px;font-size:14px;line-height:2.1}
.section-copy p{margin:0 0 18px}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:48px;padding:12px 20px;border:1px solid currentColor;font-size:12px;line-height:1.5}
.text-link span{font-size:22px}
.text-link:hover{background:#7e919314}
.mission-facet{height:230px;border-left:1px solid #a4b4c0;border-right:1px solid #fff;transform:skewX(-18deg);background:linear-gradient(120deg,transparent 35%,#cad3db42 49%,#fff9 50%,transparent 52%)}
.section-heading{display:flex;align-items:center;gap:50px;margin-bottom:40px}
.section-heading h2,.contact-wide h2{font-size:clamp(56px,6.8vw,104px);font-weight:400;letter-spacing:-.06em;line-height:1;margin:0}
.section-heading p{font-size:15px;line-height:1.9;margin:0}
.section-heading>.text-link{margin-left:auto;border-width:0 0 1px;padding-left:0;padding-right:0}
.services{background:var(--section-dark);color:#f7fafb;padding-top:68px;padding-bottom:64px}
.services:before{content:"";position:absolute;inset:0;background:url('assets/G03_edge_reflection.svg') center top/140% auto no-repeat;opacity:.25;pointer-events:none;z-index:-1}
.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid #69757e}
.service-card{display:flex;flex-direction:column;min-width:0;border-right:1px solid #69757e}
.service-card:last-child{border:0}
.service-image{overflow:hidden;aspect-ratio:1.85;background:#252d33}
.service-image img{width:100%;height:100%;object-fit:cover}
.service-body{position:relative;padding:22px 20px 48px;flex:1}
.service-number{font-size:10px;color:#aebac4}
.service-body h3{font-size:18px;font-weight:500;line-height:1.25;letter-spacing:-.02em;margin:7px 0}
.service-body p{font-size:12px;line-height:1.85;color:#c4cdd4;margin:14px 0 0}
.service-body .service-name{font-size:14px;font-weight:600;color:#fff;margin:6px 0 18px}
.service-arrow{position:absolute;right:20px;bottom:16px;font-size:24px}
.service-card:hover{background:#ffffff08}
.material-note{font-size:11px;line-height:1.8;color:#a8b3bc;margin:20px 0 10px}
.secondary-link{font-size:12px;text-decoration:underline;text-underline-offset:5px;display:inline-block;min-height:44px;padding:12px 0}
.partners{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:30px;padding-top:44px;padding-bottom:44px;background:#fafcfd;border-bottom:1px solid #d3dbe1}
.partners .section-kicker{margin:0;gap:18px}
.partner-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.partner{display:flex;align-items:center;justify-content:center;min-height:100px;padding:10px 15px;border-left:1px solid #d6dde2;background:#fff}
.partner img{width:100%;height:88px;object-fit:contain}
.news{padding-top:72px;padding-bottom:72px}
.news-empty{border-top:1px solid var(--section-rule);border-bottom:1px solid var(--section-rule);padding:34px 0;display:grid;grid-template-columns:1fr 1.2fr;gap:12px}
.small-label{font-size:10px;letter-spacing:.12em;color:#566570}
.news-empty p{margin:0;font-size:17px}
.news-empty .muted{font-size:12px;color:#596771;grid-column:2}
.recruit{display:grid;grid-template-columns:1fr 1.2fr;gap:50px;align-items:center;padding-top:64px;padding-bottom:64px;border-top:1px solid #d3dbe1}
.recruit-copy>p:not(.section-kicker){font-size:14px;line-height:1.9;margin-top:24px}
.recruit-copy .recruit-status{color:#616e77;font-size:12px;margin-bottom:12px}
.recruit-visual{min-height:350px;position:relative;overflow:hidden;border:1px solid #b8c4cd;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;padding:30px;background:linear-gradient(130deg,#dce4ea,#fafcfd 43%,#c4d0da)}
.recruit-visual:before{content:"";position:absolute;inset:-15%;background:url('assets/G01_back_plane.svg') center/cover;opacity:.55;pointer-events:none}
.recruit-words{font-size:clamp(28px,3.3vw,50px);line-height:1.1;letter-spacing:-.035em;z-index:1;color:#4b5e6b}
.recruit-caption{font-size:11px;line-height:1.8;z-index:1;color:#4a5b67}
.contact-section{background:linear-gradient(135deg,#f3f6f8,#fff 50%,#e0e6ea);padding-top:62px;padding-bottom:70px}
.contact-section:before{content:"";position:absolute;inset:0;background:url('assets/G02_front_sweep.svg') center/100% 130% no-repeat;opacity:.24;pointer-events:none;z-index:-1}
.contact-wide{display:flex;gap:40px;align-items:center;border-bottom:1px solid #aebbc4;padding-bottom:35px}
.contact-wide p{font-size:17px}
.contact-wide>span{font-size:100px;line-height:1;font-weight:200;margin-left:auto}
.site-footer{padding-top:36px;padding-bottom:28px;background:#f3f6f8;border-top:1px solid #d1d9df}
.footer-main{display:flex;align-items:center;gap:28px}
.footer-brand{width:45px;flex-shrink:0}
.footer-main p{font-size:12px;line-height:2}
.footer-main p span{font-size:10px;color:#62707a}
.footer-main nav{display:flex;flex-wrap:wrap;gap:18px;margin-left:auto;font-size:10px}
.footer-main nav a{padding:15px 0}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #d5dde2;margin-top:30px;padding-top:20px;font-size:10px;color:#606e78}
.footer-bottom small{font-size:10px}
.local-preview{padding:24px var(--gutter);border-top:1px dashed #b4c0c9;background:#e8edf1;font-size:11px;line-height:1.8;color:#52606a}
.local-preview .replay{margin-top:0}
/* Progressive enhancement: content remains visible without JavaScript. */
.reveal.is-pending{opacity:0;transform:translateY(18px)}
.reveal{transition:opacity .6s ease,transform .6s cubic-bezier(.2,.65,.3,1)}
.service-card.is-pending .service-image img{clip-path:inset(0 0 16% 0)}
.service-image img{transition:clip-path .7s ease;clip-path:inset(0)}
.section-heading.is-pending{border-bottom-color:transparent}
@media(max-width:1000px){.mission-grid{grid-template-columns:1fr 1fr;gap:30px}.mission-facet{display:none}.partners{grid-template-columns:1fr}.service-body{padding-left:14px;padding-right:14px}.service-body h3{font-size:15px}.footer-main{flex-wrap:wrap}.footer-main nav{margin-left:0}}
@media(max-width:700px){
 :root{--section-space:52px}
 .section-kicker{gap:20px;font-size:10px;margin-bottom:24px}
 .mission{padding-top:48px;padding-bottom:48px}.mission-grid{grid-template-columns:1fr;gap:24px}.statement{font-size:30px}.section-copy{font-size:13px;line-height:2}
 .section-heading{flex-wrap:wrap;gap:20px;margin-bottom:28px}.section-heading h2{font-size:60px}.section-heading p{font-size:12px}.section-heading>.text-link{margin-left:0;width:100%}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card:nth-child(2){border-right:0}.service-card:nth-child(-n+2){border-bottom:1px solid #69757e}.service-body{padding:16px 12px 40px}.service-body h3{font-size:12px;line-height:1.3;overflow-wrap:anywhere}.service-body .service-name{font-size:12px}.service-body p{font-size:11px}.service-arrow{right:12px;bottom:12px}
 .partners{gap:20px;padding-top:30px;padding-bottom:30px}.partner-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.partner{min-height:70px;padding:6px;border:1px solid #e0e6eb}.partner img{height:64px}
 .news-empty{grid-template-columns:1fr;padding:26px 0;gap:14px}.news-empty .muted{grid-column:auto}.news-empty p{font-size:15px}
 .recruit{grid-template-columns:1fr;gap:28px}.recruit-visual{min-height:260px;padding:22px}.recruit-words{font-size:36px}.recruit-copy>p:not(.section-kicker){font-size:13px}
 .contact-wide{flex-wrap:wrap;gap:12px;position:relative;padding-right:50px}.contact-wide h2{font-size:58px}.contact-wide p{font-size:12px;margin:8px 0}.contact-wide>span{position:absolute;right:0;top:10px;font-size:54px}
 .footer-main{gap:18px}.footer-main nav{width:100%;gap:16px}.footer-bottom{gap:20px;align-items:center}.local-preview{font-size:10px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.service-image img{transition:none!important}.reveal.is-pending{opacity:1;transform:none}.service-card.is-pending .service-image img{clip-path:none}}
.footer-brand img{width:100%;height:auto}
.skip-link:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0}
/* Stage 2 refinement: shared thin planes across section boundaries. */
.mission{overflow:visible;z-index:2;background:linear-gradient(120deg,#fff 5%,#f2f5f7 60%,#dce5ec)}
.mission:after,.recruit:after{content:"";position:absolute;pointer-events:none;z-index:-1;left:0;right:0;top:-72px;height:150px;background:url('assets/G02_front_sweep.svg') center/100% 100% no-repeat;opacity:.48}
.mission-facet{position:relative;height:260px;transform:skewX(-18deg);border-left:1px solid #8498a9;border-right:1px solid #fff;background:linear-gradient(118deg,transparent 16%,#b6c6d533 45%,#fff9 46%,#b0c0cc22 47%,transparent 70%);box-shadow:inset 12px 0 18px #bccbd51a}
.mission-facet:before,.mission-facet:after{content:"";position:absolute;inset:-35px 20% -60px -35%;border-left:1px solid #ffffffc9;border-bottom:1px solid #8197a65c;background:linear-gradient(105deg,transparent 35%,#ffffff50 48%,transparent 50%);transform:skewX(8deg)}
.mission-facet:after{inset:35px -28% -85px 40%;background:linear-gradient(130deg,transparent,#adc1d022,transparent);border-left-color:#93a8b58a}
.services{padding-top:86px;margin-top:-24px}
.services:before{inset:-65px 0 auto;height:160px;background:url('assets/G03_edge_reflection.svg') center/130% 100% no-repeat;opacity:.65}
.service-grid{border:0;gap:2px}
.service-card{border:0!important}
.service-image{aspect-ratio:1.6}
.service-body{padding:18px 18px 43px;border-top:1px solid #b2c0ca40}
.service-body h3{font-size:16px;min-height:40px;margin:6px 0 0}
.service-body .service-name{margin:0 0 10px;min-height:22px}
.service-body p{margin:10px 0 0;font-size:13px;line-height:1.75}
.service-arrow{right:18px;bottom:12px;font-size:22px}
.partners{background:#fff;border-bottom-color:#e1e6ea}
.partner-grid{gap:0}
.partner{background:none;border:0;border-left:1px solid #e2e7eb;padding:8px 18px;overflow:hidden;min-height:105px}
.partner img{height:88px;width:100%;max-width:180px;object-fit:contain}
.partner-tryhard img{transform:scale(1.38)}
.partner-unisia img{transform:scale(1.35)}
.partner-vertex img{transform:scale(1.12)}
.partner-v01d img{height:68px}
.partner-gmj img{transform:scale(1.04)}
.recruit{border-top:0;padding-bottom:85px}
.recruit:after{top:auto;bottom:-75px;height:180px;background-image:url('assets/G03_edge_reflection.svg');opacity:.65;z-index:1}
.contact-section{padding-top:80px;background:linear-gradient(125deg,#edf2f5,#fff 48%,#e1e8ed)}
.contact-section:before{inset:-35px 0 0;background-size:110% 140%;opacity:.4}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.news-card a{display:block;border-bottom:1px solid var(--section-rule);height:100%}
.news-image{aspect-ratio:16/9;overflow:hidden;background:#e2e8ed}
.news-image img{width:100%;height:100%;object-fit:cover}
.news-card-copy{padding:18px 0 28px;position:relative}
.news-card time{font-size:11px;color:#63717b}
.news-card h3{font-size:17px;line-height:1.65;padding-right:24px}
.news-card-copy>span{position:absolute;right:0;bottom:14px}
.recruit-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(min-width:901px){.desktop-nav{gap:24px}.header{gap:26px}}
@media(min-width:701px) and (max-width:900px){
 .hero .photo{height:clamp(170px,24vw,220px)}
 .hero .photo img{object-position:center 40%}
 .hero .business-label{min-height:112px}
}
@media(max-width:900px){
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}
 .service-body h3{min-height:0;font-size:17px;margin-bottom:8px}
 .service-body .service-name{min-height:0}
 .service-body p{font-size:14px}
 .mission-facet{display:none}
 .mission:before{background-size:120% 150%;opacity:.38}
 .services{padding-top:68px}
 .partner{padding:8px 12px}
}
@media(max-width:700px){
 .mission:after{top:-50px;height:105px;opacity:.32}
 .service-grid{gap:24px 12px}
 .service-body{padding:16px 12px 42px}
 .service-body h3{font-size:14px;overflow-wrap:normal}
 .service-body .service-name{font-size:13px}
 .service-body p{font-size:13px}
 .partner{min-height:86px;border:0;border-left:1px solid #e2e7eb;padding:8px 10px}
 .partner img{height:65px}.partner-v01d img{height:52px}
 .news-grid{grid-template-columns:1fr}
 .recruit{padding-bottom:65px}.contact-section{padding-top:65px}
}
@media(max-width:390px){
 .service-grid{grid-template-columns:1fr;gap:28px}
 .service-image{aspect-ratio:1.75}
 .service-body{padding:18px 4px 38px}
 .service-body h3{font-size:18px}
 .service-body .service-name{font-size:14px}
 .service-body p{font-size:14px;line-height:1.85}
 .service-arrow{right:8px}
}

/* Photo finish: reversible CSS crops and restrained colour treatment. */
.hero .agent .photo img{object-position:52% 49%}
.hero .event .photo img{object-position:50% 48%}
.hero .dining .photo img{object-position:50% 48%}
.hero .security .photo img{object-position:50% 20%}
#service-agent img{object-position:52% 49%}
#service-event img{object-position:50% 48%}
#service-dining img{object-position:50% 48%}
#service-security img{object-position:50% 35%}
.hero .event .photo img,#service-event img{filter:saturate(.72)}
.recruit-visual>img{object-position:50% 55%;filter:sepia(.07)}
.recruit-visual:before{display:none}
.recruit-words{font-size:clamp(22px,2.3vw,34px);color:#26313a;text-shadow:0 1px 4px #fff9;align-self:flex-end;margin-top:auto;margin-bottom:28px;z-index:1}
@media(min-width:901px){.hero .security .photo img{height:66%}}

@media(min-width:901px){.hero .agent .photo img{transform:translateX(75px)}.hero .dining .photo img{object-position:50% 10%}}
#service-dining img{object-position:50% 32%}
.recruit-words{margin-top:0;margin-bottom:auto}


/* Security photo only: modest enlargement for the final local check. */
#service-security img{transform:scale(1.12);transform-origin:50% 55%}
@media(min-width:901px){.hero .security .photo img{transform:scale(1.06);transform-origin:50% 35%}}
@media(max-width:700px){.hero .security .photo img{transform:scale(1.2);transform-origin:50% 55%}}

/* Integrated photo treatment: hero, recruit and business anchor destinations. */
.service-card{scroll-margin-top:32px}
.service-card:target{outline:1px solid #e6edf2;outline-offset:6px;background:#ffffff09}
@media(min-width:901px){
 .hero .businesses{left:23%;width:73%}
 .hero .photo img{top:0;height:100%;mask-image:none}
 .hero .agent .photo img{transform:scale(1.2);transform-origin:0 45%;object-position:52% 48%}
 .hero h1{font-size:clamp(94px,9vw,148px)}
 .hero .dining .photo img{object-position:50% 35%}
 .hero .security .photo img{height:100%;object-position:50% 24%;transform:scale(1.06)}
 .hero .photo:after{background:linear-gradient(180deg,transparent 48%,#07101812 60%,#07101899 84%,#071018b3 100%)}
 .hero .business-label{bottom:8%;padding:12px 0;text-shadow:0 1px 5px #000c}
 .desktop-nav{padding:16px 18px;background:#f7f9faf2;border:1px solid #d3dbe2}
 .header .contact,.header .menu-toggle{background:#f7f9faf2}
 .recruit{display:block;min-height:510px;padding-top:70px;padding-bottom:70px;padding-right:0;background:#f5f7f8}
 .recruit-copy{position:relative;z-index:2;width:39%;max-width:500px}
 .recruit-visual{position:absolute;right:0;top:0;bottom:0;width:70%;min-height:0;border:0;padding:0;background:none;mask-image:linear-gradient(90deg,transparent,#000 14%)}
 .recruit-visual>img{object-position:58% 58%}
 .recruit-words{position:absolute;right:6.3vw;top:36px;font-size:20px;line-height:1.25;margin:0}
}
@media(max-width:900px){
 .hero .business{min-height:240px}
 .hero .business .photo{position:absolute;inset:0;height:100%;overflow:hidden}
 .hero .business .photo img{height:100%;width:100%;mask-image:none;object-fit:cover}
 .hero .business .photo:after{background:linear-gradient(180deg,transparent 30%,#07101825 47%,#071018c9 78%,#071018e0 100%)}
 .hero .business-label{position:absolute;left:0;right:0;bottom:12px;min-height:0;padding:0 14px;text-shadow:0 1px 4px #0009}
 .hero .business h2{font-size:11px;line-height:1.3;margin:4px 0}
 .hero .business p{font-size:13px;line-height:1.5;margin:5px 0 0;padding-right:16px}
 .hero .business .arrow{right:12px;bottom:0}
 .hero .agent .photo img{object-position:52% 43%}
 .hero .dining .photo img{object-position:50% 40%}
 .hero .security .photo img{object-position:50% 30%;transform:scale(1.12)}
 .recruit-words{font-size:20px;line-height:1.25}
}
@media(min-width:701px) and (max-width:900px){
 .hero .business{min-height:330px}
 .hero .business-label{padding:0 24px;bottom:20px}
 .hero .business h2{font-size:14px}
 .hero .business p{font-size:18px}
 .recruit{grid-template-columns:1fr;gap:28px}
 .recruit-visual{min-height:380px}
}
@media(max-width:360px){.hero .business-label{padding-left:12px;padding-right:10px}.hero .business{min-height:240px}}


@media(max-width:900px){.hero .event .business-label p{padding-right:0}}
/* Supplied AI concept images: image-only crop overrides, no layout changes. */
.hero .agent .photo img{object-position:65% 35%;transform:none}
.hero .event .photo img{object-position:50% 50%;filter:none}
.hero .dining .photo img{object-position:80% 50%}
.hero .security .photo img{object-position:75% 25%;transform:none}
#service-agent img{object-position:60% 30%}
#service-event img{object-position:50% 55%;filter:none}
#service-dining img{object-position:65% 55%}
#service-security img{object-position:70% 15%;transform:none}
.recruit-visual>img{object-position:50% 50%;filter:none}

@media(min-width:901px){.hero .security .photo img{object-position:108% 25%}}


/* Intro foreground masks preserve the supplied official logo pixel geometry. */
.logo-fragment{position:absolute;display:block;pointer-events:none;mask-size:100% 100%;mask-repeat:no-repeat;background:linear-gradient(125deg,#334f60 0%,#b9cad3 27%,#6e899a 43%,#263e4e 49%,#d2e0e7 54%,#4e6c7e 80%);transform-origin:center}
.logo-shine{z-index:2}
.intro-splinter{position:absolute;height:auto;z-index:11;pointer-events:none;transform-origin:center}
.mission-facet{display:block;position:relative;width:280px;max-width:100%;height:260px;align-self:center;border:0;background:none;box-shadow:none;transform:none;perspective:800px;pointer-events:none}
.mission-facet:before,.mission-facet:after{display:none}
.mission-facet img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse at center,#000 48%,transparent 73%);transform:translate(var(--mission-x,0px),var(--mission-y,0px)) rotateX(var(--mission-rx,0deg)) rotateY(var(--mission-ry,0deg));transition:transform .32s ease-out}
@media(min-width:1001px){.mission-facet{width:300px;max-width:none;margin-left:-22px}.mission-grid{overflow:visible}}
@media(min-width:701px) and (max-width:1000px){.mission-facet{grid-column:2;justify-self:end;height:190px;margin-top:-18px}}
@media(max-width:700px){.mission-facet{width:200px;height:165px;justify-self:end;margin-top:-8px}}
@media(prefers-reduced-motion:reduce){.mission-facet img{transform:none;transition:none}}

/* Review v2: isolate the intro and give Mission a dedicated object column. */
.hero[data-intro="playing"] .header{background:transparent}
.hero[data-intro="playing"] .desktop-nav,.hero[data-intro="playing"] .header>.contact,.hero[data-intro="playing"] .menu-toggle{opacity:0}
.intro-veil{position:fixed;inset:0}
.intro-splinter{filter:contrast(1.4) drop-shadow(0 1px 0 #647e9055)}
@media(min-width:1001px){
 .mission-grid{grid-template-columns:1fr 480px;column-gap:70px;row-gap:24px;align-items:start}
 .mission-grid .statement{grid-column:1;grid-row:1}
 .mission-grid .section-copy{grid-column:1;grid-row:2;max-width:600px}
 .mission-facet{grid-column:2;grid-row:1 / 3;width:480px;height:405px;margin:0;align-self:center}
}
@media(min-width:701px) and (max-width:1000px){.mission-facet{width:330px;max-width:100%;height:270px;margin-top:0}}
.mission-facet img{mask-image:radial-gradient(ellipse at center,#000 43%,#000d 55%,transparent 73%)}

body:has(.hero[data-intro="playing"]) .page-content,body:has(.hero[data-intro="playing"]) .site-footer,body:has(.hero[data-intro="playing"]) .local-preview{visibility:hidden}

html.intro-pending{background:#f7f9fa}
html.intro-pending body{visibility:hidden}

/* Independent ribbon local study: ?mission=ribbons. No raster slicing. */
.mission-ribbons{display:none;width:100%;height:100%;overflow:visible}
.mission-facet.has-ribbons{pointer-events:auto}
.mission-facet.has-ribbons>img{display:none}
.mission-facet.has-ribbons>.mission-ribbons{display:block;pointer-events:none}
.mission-ribbons .ribbon{transform-box:view-box;transform-origin:450px 330px;transform:translate(var(--ribbon-x,0px),var(--ribbon-y,0px)) rotate(var(--ribbon-turn,0deg));transition:transform .4s cubic-bezier(.2,.65,.3,1)}
@media(max-width:900px),(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.mission-ribbons .ribbon{transform:none;transition:none}}

/* v2 is opt-in; preserve both approved raster and v1 study. */
.mission-facet.has-ribbons>.mission-ribbons-v2{display:none}
.mission-facet.has-ribbons-v2>.mission-ribbons{display:none}
.mission-facet.has-ribbons-v2>.mission-ribbons-v2{display:block}
@media(min-width:769px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.mission-ribbons-v2 .ribbon{transform:translate(var(--ribbon-x,0px),var(--ribbon-y,0px)) rotate(var(--ribbon-turn,0deg));transition:transform .4s cubic-bezier(.2,.65,.3,1)}}

/* v3 comparison: curved surfaces and bevels, unchanged motion. */
.mission-facet.has-ribbons>.mission-ribbons-v3{display:none}
.mission-facet.has-ribbons-v3>.mission-ribbons{display:none}
.mission-facet.has-ribbons-v3>.mission-ribbons-v3{display:block}
@media(min-width:769px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.mission-ribbons-v3 .ribbon{transform:translate(var(--ribbon-x,0px),var(--ribbon-y,0px)) rotate(var(--ribbon-turn,0deg));transition:transform .4s cubic-bezier(.2,.65,.3,1)}}

/* Local panel study: ?panels=motion. Image crops and links remain unchanged. */
.hero.panel-motion .business:focus-visible{outline:3px solid #d8e6ef;outline-offset:-5px;box-shadow:inset 0 0 0 7px #263d4d}
@media(min-width:901px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .hero.panel-motion .business .photo img{scale:1;translate:0 0;transition:scale .4s cubic-bezier(.2,.65,.3,1),translate .4s cubic-bezier(.2,.65,.3,1)}
 .hero.panel-motion .business-label{translate:0 0;transition:translate .4s cubic-bezier(.2,.65,.3,1)}
 .hero.panel-motion .business.is-panel-active .photo img{scale:1.04;translate:var(--panel-x,0px) var(--panel-y,0px)}
 .hero.panel-motion .business.is-panel-active .business-label{translate:3px -3px}
 .hero.panel-motion .business.is-panel-active:after{box-shadow:inset 3px 0 5px #ecf7ff66,inset -2px 0 4px #52687966}
 .hero.panel-motion .business:before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;background-image:linear-gradient(transparent,#e6f3ff,#fff,transparent),linear-gradient(transparent,#e6f3ff,#fff,transparent);background-size:2px 35%;background-repeat:no-repeat;background-position:left -60%,right -60%}
 .hero.panel-motion .business.is-panel-active:before{animation:panel-edge-pass .65s ease-out 1}
 @keyframes panel-edge-pass{0%{opacity:0;background-position:left -60%,right -60%}22%{opacity:.75}100%{opacity:0;background-position:left 160%,right 160%}}
}

/* Approved Mission geometry; depth accents are intentionally not separate cutouts. */
.mission-depth img{position:relative;z-index:1;transition:transform .55s cubic-bezier(.2,.65,.3,1),filter .55s ease-out;filter:brightness(var(--mission-light,1))}
.mission-depth:before{display:block;content:"";position:absolute;inset:18% 12% 8%;border:0;background:radial-gradient(ellipse,#708b9b66,transparent 68%);opacity:var(--mission-shadow-opacity,0);transform:translate(var(--mission-shadow-x,0px),var(--mission-shadow-y,0px));transition:transform .55s ease-out,opacity .55s ease-out;pointer-events:none}
@media(max-width:900px),(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.mission-depth img{transform:none;filter:none;transition:none}.mission-depth:before{display:none}}
@media(min-width:901px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.hero.panel-motion .business.panel-arriving:before{animation:panel-edge-pass .5s ease-out var(--arrival-delay,0ms) 1}}
