/* Final shared component layer: deliberate spacing, readable controls, native scrolling. */
.mass-site .mass-icon { display:inline-block; width:22px; height:22px; flex:0 0 22px; vertical-align:middle; }
.mass-site .btn,.mass-site .home-button { display:inline-flex; align-items:center; justify-content:center; gap:18px; line-height:1.35; height:auto; min-height:56px; white-space:normal; text-align:center; vertical-align:middle; }
.mass-site .btn span { margin:0; }
.mass-site .btn .mass-icon,.mass-site .home-button .mass-icon { margin:0; transform:none; }
.mass-site .text-link .mass-icon { transition:transform .25s; }
.mass-site .text-link:hover .mass-icon { transform:translateX(4px); }
.mass-site .card-arrow .mass-icon { width:19px; height:19px; }
.mass-site .experience-card:hover .card-arrow,.mass-site .experience-card:focus-visible .card-arrow { transform:translateX(2px); }
/* The opening photograph and ribbon together occupy exactly the first screen. */
.mass-site #large-header.home-hero { height:calc(100svh - 80px); min-height:0; padding:155px 0 115px; }
.mass-home .celebration-ribbon { height:80px; padding:0; display:flex; align-items:center; }
.mass-site .hero-content h1 { font-size:clamp(68px,min(8.8vw,16svh),174px); }
.mass-site .hero-summary { margin-top:35px; }
.mass-site .hero-eyebrow { margin-bottom:25px; }
.mass-site .hero-bottom { bottom:25px; }
/* Hero-only liquid glass experiment. */
.mass-home .hero-summary .home-button {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-radius:999px;
  border:1px solid #ffffff65;
  background:linear-gradient(135deg,#ffffff2e,#ffffff0a 48%,#ffffff1a),#251b3533;
  color:#fff;
  -webkit-backdrop-filter:blur(14px) saturate(155%);
  backdrop-filter:blur(14px) saturate(155%);
  box-shadow:inset 0 1px 1px #ffffff80,inset 0 -1px 1px #ffffff26,inset 1px 0 1px #ffffff33,0 8px 28px #09051230;
  text-shadow:0 1px 5px #0006;
  transition:background .25s,border-color .25s,box-shadow .25s,transform .25s;
}
.mass-home .hero-summary .home-button::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  background:linear-gradient(115deg,transparent 20%,#ffffff24 45%,transparent 70%);
  transform:translateX(-110%);
  transition:transform .7s ease;
  pointer-events:none;
}
.mass-home .hero-summary .home-button:hover {
  background:linear-gradient(135deg,#ffffff40,#ffffff10 48%,#ffffff26),#33223c44;
  border-color:#ffffff9c;
  box-shadow:inset 0 1px 2px #ffffffa6,inset 0 -1px 1px #ffffff38,0 12px 32px #09051240;
  transform:translateY(-2px);
}
.mass-home .hero-summary .home-button:hover::before { transform:translateX(110%); }
.mass-home .hero-summary .home-button:focus-visible { outline:2px solid #fff; outline-offset:5px; }
.mass-home .hero-summary .home-button:active { transform:translateY(0) scale(.98); }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .mass-home .hero-summary .home-button { background:linear-gradient(135deg,#615467,#302639); }
}
@media(prefers-reduced-motion:reduce) {
  .mass-home .hero-summary .home-button,.mass-home .hero-summary .home-button::before { transition:none; }
  .mass-home .hero-summary .home-button:hover,.mass-home .hero-summary .home-button:active { transform:none; }
  .mass-home .hero-summary .home-button::before { display:none; }
}
/* Every original client, in one seamless moving line. */
.mass-home .home-clients { padding:34px 0 32px; overflow:hidden; }
.clients-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.mass-site .clients-heading>p:last-child { font-size:13px; color:#6d6b68; }
.client-carousel { overflow:hidden; width:100%; mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.client-track { display:flex; width:max-content; animation:clients-flow 65s linear infinite; }
.client-group { display:flex; flex-shrink:0; align-items:center; }
.client-logo { display:grid; place-items:center; width:220px; height:100px; padding:12px 28px; }
.client-logo img { width:100%; height:76px; object-fit:contain; filter:grayscale(1); opacity:.7; mix-blend-mode:multiply; transition:filter .3s,opacity .3s,transform .3s; }
.client-logo:hover img,.client-carousel:focus-visible img { filter:grayscale(0); opacity:1; transform:scale(1.04); }
.client-carousel:hover .client-track,.client-carousel:focus-within .client-track { animation-play-state:paused; }
@keyframes clients-flow { to { transform:translateX(-50%); } }
/* No tabs: the complete collection is visible and grouped for easy scanning. */
.service-group-heading { display:flex; align-items:center; gap:14px; margin:55px 0 24px; padding-top:25px; border-top:1px solid #ffffff2a; color:#edb7d9; }
.mass-site .service-group-heading h3 { font-size:22px; letter-spacing:-.5px; }
.service-group-heading>span { margin-left:auto; color:#959791; font-size:10px; letter-spacing:1.6px; }
.service-group-heading:has(+ #panel-celebrations) { color:#ffdb85; }
.service-group-heading:has(+ #panel-production) { color:#c2a9f5; }
.mass-home .experience-card { height:clamp(300px,25vw,410px); }
.more-experiences { margin-top:42px; }
.mass-site .more-experiences>.eyebrow { color:#aaa9a5; margin-bottom:18px; font-size:10px; }
.more-experiences>div { display:flex; flex-wrap:wrap; gap:12px; }
.more-experiences a { display:flex; align-items:center; gap:12px; padding:14px 18px; border:1px solid #ffffff30; font-size:13px; transition:background .2s,border-color .2s; }
.more-experiences a:hover { background:#ffffff10; border-color:#dcb1df; }
.more-experiences a .mass-icon:last-child { width:16px; flex-basis:16px; margin-left:10px; }
/* Navigation: two balanced occasion groups and a compact services directory. */
.mass-site .topnav .navbar,.mass-site .topnav .navbar-collapse { position:static; }
.mass-site .topnav .nav-hold { position:relative; }
.mass-site .topnav .mass-mega { position:static; }
.mass-site .topnav ul.nav>li>a.menu-trigger { display:flex; align-items:center; gap:6px; }
.mass-site .topnav .menu-trigger .mass-icon { width:14px; height:14px; flex-basis:14px; }
.mass-site .topnav .menu-trigger::after { display:none!important; }
.mass-site .topnav .mass-event-menu::before,.mass-site .topnav .mass-event-menu::after { display:none; }
.mass-site .topnav .mass-event-menu { width:100%; left:0; right:0; top:100%; padding:30px; border:1px solid #ffffff25; box-shadow:0 24px 60px #0005; background:#171817; border-radius:0 0 8px 8px; }
.mass-site .topnav .mass-mega.open>.mass-event-menu { display:grid; grid-template-columns:1.35fr 1.1fr .9fr; gap:30px; padding-block:30px!important; }
.mass-site .topnav .mass-event-menu>li { width:auto; float:none; padding:0; list-style:none; }
.mass-site .topnav .menu-group>ul { display:grid; grid-template-columns:1fr 1fr; padding:0; margin:0; list-style:none; gap:4px; }
.mass-site .topnav .menu-group:nth-child(2)>ul { grid-template-columns:1fr; }
.mass-site .topnav .menu-label { padding:0 12px 17px; margin:0 0 9px; color:#c6a7da; border-bottom:1px solid #ffffff20; text-transform:uppercase; font-size:10px; font-weight:600; letter-spacing:1.7px; }
.mass-site .topnav .mass-event-menu .menu-group a,.mass-site .topnav .mass-service-menu>li>a { display:flex; align-items:center; gap:13px; padding:14px 12px; margin:0; min-height:48px; color:#f2f0ed; font-size:13px; line-height:1.4; font-weight:400; text-transform:none; letter-spacing:0; white-space:normal; border:0; border-radius:4px; }
.mass-site .topnav .mass-event-menu .menu-group a:hover,.mass-site .topnav .mass-service-menu>li>a:hover,.mass-site .topnav .mass-event-menu .menu-group a:focus,.mass-site .topnav .mass-service-menu>li>a:focus { background:#ffffff0d; color:#ffdb85; }
.mass-site .topnav .menu-group a .mass-icon,.mass-site .topnav .mass-service-menu .mass-icon { color:#c6a7da; width:20px; height:20px; flex-basis:20px; }
.mass-site .topnav .mass-event-menu>.menu-feature { background:linear-gradient(125deg,#3d2c41,#282329); padding:25px; border-radius:4px; color:#f2e8f0; }
.mass-site .topnav .menu-feature>.mass-icon { color:#ffdb85; width:32px; height:32px; }
.mass-site .topnav .menu-feature p { font-size:25px; line-height:1.25; letter-spacing:-.7px; margin:15px 0 12px; }
.mass-site .topnav .menu-feature>span { display:block; color:#c8bdca; font-size:12px; line-height:1.7; }
.mass-site .topnav .menu-feature>a { display:flex; align-items:center; gap:15px; margin-top:22px; padding:0; color:#ffdb85; font-size:12px; text-transform:none; letter-spacing:0; }
.mass-site .topnav .mass-services-menu { position:relative; }
.mass-site .topnav .navbar-nav .mass-services-menu>.mass-service-menu { width:350px; min-width:0; max-width:calc(100vw - 40px); left:0; right:auto; padding:12px; border:1px solid #ffffff25; background:#171817; box-shadow:0 24px 60px #0005; border-radius:0 0 8px 8px; transition:opacity .2s,visibility .2s; }
.mass-service-menu small { display:block; margin-top:5px; font-size:11px; color:#9f9fa1; }
.mass-site .topnav .mass-service-menu>li>a { padding:15px 12px!important; font-size:13px!important; }
.mass-site .topnav .mass-service-menu>li>a>span { min-width:0; flex:1; }
/* Clear social identities, with the complete icon and label clickable. */
.mass-site .footer-grid>.footer-socials>a { display:flex; align-items:center; gap:13px; width:fit-content; min-height:32px; }
.mass-site .footer-socials .mass-icon { width:19px; height:19px; flex-basis:19px; color:#d5c0e2; }
.mass-site .footer-socials>a:hover .mass-icon { color:#ffdb85; }
/* A purposeful invitation replaces detached headings and floating buttons. */
.invitation-section { padding:30px 0 70px; }
.event-invitation { display:flex; align-items:center; gap:30px; margin-top:38px; padding:42px; border:1px solid #d9cbe2; border-radius:6px; background:radial-gradient(ellipse at 0 0,#f5dbe9,transparent 60%),linear-gradient(120deg,#efe5f4,#f2eee5); }
.invitation-symbol { flex:0 0 70px; width:70px; height:70px; display:grid; place-items:center; border-radius:50%; background:#fff8; color:#855b99; }
.mass-site .invitation-symbol .mass-icon { width:36px; height:36px; }
.invitation-copy { flex:1; }
.mass-inner .inner-main .invitation-copy .eyebrow { font-size:10px; letter-spacing:1.8px; color:#825b91; margin:0 0 12px; }
.mass-inner .inner-main .invitation-copy h2 { font-size:clamp(24px,2.5vw,35px); line-height:1.15; margin:0 0 12px; letter-spacing:-1.2px; }
.mass-inner .inner-main .invitation-copy>p:last-child { margin:0; font-size:14px; line-height:1.6; }
.mass-inner .invitation-button { flex-shrink:0; min-width:155px; }
.mass-site .gallery-zoom { display:flex; align-items:center; gap:8px; }
.mass-site .gallery-zoom .mass-icon { width:16px; height:16px; }
.mass-inner .contact-details h4 { display:flex; align-items:center; gap:12px; }
.mass-inner .contact-details h4 .mass-icon { color:#9661b7; }
/* Editorial service pages, using the company's own event photography. */
.service-story-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:70px; align-items:center; }
.service-story-copy .eyebrow { margin-bottom:24px!important; color:#8c649c!important; font-size:10px!important; letter-spacing:1.8px; }
.mass-inner .service-story-copy h2 { font-size:clamp(36px,3.5vw,52px); margin-bottom:30px; }
.mass-inner .service-story-copy h2 em { color:#845794; }
.service-photo { position:relative; overflow:hidden; border-radius:5px; height:560px; background:#29262c; }
.service-photo img { width:100%; height:100%; object-fit:cover; }
.service-photo::after { content:''; position:absolute; inset:60% 0 0; background:linear-gradient(transparent,#0009); }
.service-photo figcaption { position:absolute; z-index:1; bottom:22px; left:24px; right:20px; display:flex; align-items:center; gap:10px; color:white; font-size:11px; }
.capability-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:55px 0; }
.capability-grid article { border:1px solid #ddd8df; background:#faf9f6; border-radius:5px; padding:30px; }
.capability-grid article>.mass-icon { color:#8b609e; width:30px; height:30px; margin-bottom:24px; }
.mass-inner .capability-grid article h3 { font-size:22px; margin-bottom:14px; }
.mass-inner .capability-grid article p { font-size:14px; margin:0; }
/* A compact typographic team treatment, without stock avatar portraits. */
.people-section { padding:70px 0; background:#eae7e2; }
.people-heading { display:flex; justify-content:space-between; gap:60px; align-items:end; margin-bottom:40px; }
.mass-inner .people-heading .eyebrow { font-size:10px; letter-spacing:1.8px; color:#876292; }
.mass-inner .people-heading h2 { margin:0; font-size:clamp(35px,3.5vw,52px); }
.mass-inner .people-heading h2 em { color:#825b91; }
.mass-inner .people-heading>p { max-width:380px; margin:0; font-size:14px; }
.people-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.person-card { padding:30px; min-height:270px; background:#f9f7f3; border-top:3px solid #ccb0d9; border-radius:4px; }
.person-card:nth-child(2) { border-color:#efb9d3; }
.person-card:nth-child(3) { border-color:#e3c471; }
.person-card:nth-child(4) { border-color:#abbecf; }
.person-top { display:flex; align-items:start; justify-content:space-between; margin-bottom:32px; }
.person-initial { display:grid; place-items:center; width:72px; height:72px; border-radius:50%; background:#e8dfed; color:#725784; font-family:Georgia,serif; font-size:29px; }
.person-card:nth-child(2) .person-initial { background:#f0dfe7; color:#a26982; }
.person-card:nth-child(3) .person-initial { background:#f4e8cb; color:#947a41; }
.person-card:nth-child(4) .person-initial { background:#e2e8ed; color:#688091; }
.person-top>.mass-icon { color:#a19b9f; width:20px; }
.mass-inner .person-card h3 { font-size:23px; margin:0 0 10px; }
.mass-inner .person-card p { margin:0; font-size:12px; line-height:1.6; max-width:195px; }
@media(max-width:1200px) {
  .mass-site .topnav .mass-mega.open>.mass-event-menu { grid-template-columns:1.4fr 1fr; }
  .mass-site .topnav .mass-event-menu>.menu-feature { display:none; }
  .service-story-grid { gap:40px; }
  .people-grid { gap:14px; }
  .person-card { padding:24px; }
}
@media(max-width:992px) {
  .mass-site .topnav .mass-mega.open>.mass-event-menu { display:grid; grid-template-columns:1fr 1fr; position:static; box-shadow:none; padding:20px 12px; }
  .mass-site .topnav .menu-group>ul { grid-template-columns:1fr; }
  .mass-site .topnav .navbar-nav .mass-services-menu>.mass-service-menu { position:static; width:100%; max-width:100%; box-shadow:none; }
  .event-invitation { padding:30px; gap:22px; flex-wrap:wrap; }
  .invitation-copy { flex-basis:calc(100% - 95px); }
  .event-invitation .invitation-button { margin-left:92px; }
  .people-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-story-grid { grid-template-columns:1fr; }
  .service-photo { height:430px; }
  .capability-grid article { padding:22px; }
}
@media(max-width:600px) {
  .mass-site #large-header.home-hero { height:calc(100svh - 64px); min-height:0; padding:130px 0 95px; }
  .mass-home .celebration-ribbon { height:64px; }
  .mass-site .hero-content h1 { font-size:clamp(46px,min(12.7vw,10svh),76px); }
  .mass-site .hero-eyebrow { margin-bottom:22px; font-size:8px; }
  .mass-site .hero-summary { margin-top:25px; gap:22px; }
  .mass-site .hero-bottom { bottom:21px; padding-top:18px; }
  .clients-heading { display:block; margin-bottom:16px; }
  .mass-site .clients-heading>p:last-child { margin-top:10px; font-size:12px; }
  .client-logo { width:175px; height:90px; padding:10px 22px; }
  .client-logo img { height:65px; }
  .client-track { animation-duration:55s; }
  .service-group-heading { gap:10px; margin-top:38px; }
  .mass-site .service-group-heading h3 { font-size:20px; }
  .service-group-heading>span { font-size:8px; letter-spacing:.5px; }
  .mass-home .experience-card { height:355px; }
  .more-experiences>div { display:grid; }
  .more-experiences a .mass-icon:last-child { margin-left:auto; }
  .mass-site .topnav .mass-mega.open>.mass-event-menu { grid-template-columns:1fr; gap:20px; border-inline:0; }
  .mass-site .topnav .menu-group>ul { grid-template-columns:1fr 1fr; }
  .mass-site .topnav .menu-group:nth-child(2)>ul { grid-template-columns:1fr 1fr; }
  .mass-site .topnav .mass-event-menu .menu-group a { padding:10px 5px; font-size:11px; gap:8px; }
  .mass-site .topnav .menu-group a .mass-icon { width:17px; height:17px; flex-basis:17px; }
  .mass-site .topnav .menu-label { padding-left:5px; }
  .event-invitation { display:flex; flex-direction:column; align-items:flex-start; padding:26px; gap:22px; margin-top:25px; }
  .invitation-symbol { flex-basis:54px; width:54px; height:54px; }
  .invitation-copy { flex:auto; }
  .event-invitation .invitation-button { margin:0; }
  .invitation-section { padding-bottom:40px; }
  .people-section { padding:45px 0; }
  .people-heading { display:block; }
  .mass-inner .people-heading>p { margin-top:24px; }
  .people-grid { grid-template-columns:1fr 1fr; gap:12px; }
  .person-card { padding:20px 15px; min-height:250px; }
  .person-top { margin-bottom:25px; }
  .person-top>.mass-icon { display:none; }
  .mass-inner .person-card h3 { font-size:20px; }
  .mass-inner .person-card p { font-size:11px; }
  .person-initial { width:60px; height:60px; font-size:25px; }
  .service-photo { height:360px; }
  .capability-grid { grid-template-columns:1fr; gap:15px; margin:35px 0; }
  .capability-grid article { padding:25px; }
}
@media(max-height:700px) and (min-width:601px) {
  .mass-site #large-header.home-hero { padding:125px 0 85px; }
  .mass-site .hero-content h1 { font-size:min(8vw,14svh); }
  .mass-site .hero-eyebrow { margin-bottom:15px; }
  .mass-site .hero-summary { margin-top:20px; }
  .mass-site .hero-bottom { bottom:17px; padding-top:15px; }
}
@media(max-height:700px) and (max-width:600px) {
  .mass-site #large-header.home-hero { padding:110px 0 70px; }
  .mass-site .hero-eyebrow { margin-bottom:14px; }
  .mass-site .hero-summary { margin-top:18px; gap:15px; }
  .mass-site .hero-summary p { font-size:12px; line-height:1.6; }
  .mass-site .hero-summary .home-button { min-height:48px; padding-block:12px; font-size:12px; }
  .mass-site .hero-bottom { bottom:12px; padding-top:12px; }
}
@media(prefers-reduced-motion:reduce) {
  .client-track { animation:none; width:100%; }
  .client-carousel { overflow:visible; mask-image:none; }
  .client-group { flex-wrap:wrap; justify-content:center; width:100%; }
  .client-group[aria-hidden] { display:none; }
  .client-logo { width:170px; }
  .mass-site .client-logo img,.mass-site .text-link .mass-icon { transition:none; transform:none; }
}
