/* Homepage art direction. Scoped to keep the existing inner pages independent. */
.mass-site { --ink:#111211; --paper:#f5f4f0; --muted:#656761; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.65; }
.mass-site *, .mass-site *::before, .mass-site *::after { box-sizing:border-box; }
.mass-site h1,.mass-site h2,.mass-site h3,.mass-site p,.mass-site figure,.mass-site blockquote { margin:0; }
.mass-site p { color:inherit; }
.mass-site h1,.mass-site h2,.mass-site h3 { font-family:Arial,Helvetica,sans-serif; font-weight:500; text-transform:none; color:inherit; }
.mass-site h2 { font-size:clamp(42px,4.2vw,76px); line-height:1.08; letter-spacing:-.055em; }
.mass-site em { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.065em; }
.mass-site a { color:inherit; text-decoration:none; }
.mass-site button { font:inherit; }
.mass-site a:focus-visible,.mass-site button:focus-visible,.mass-site summary:focus-visible { outline:2px solid currentColor; outline-offset:6px; }
.mass-site [hidden] { display:none !important; }
.home-shell { width:calc(100% - 128px); max-width:1680px; margin-inline:auto; }
.section-space { padding-block:120px; }
.mass-site .eyebrow { font-size:11px; font-weight:600; line-height:1.5; letter-spacing:2px; text-transform:uppercase; }
.mass-site .text-link { display:inline-flex; align-items:center; gap:28px; padding:12px 0; border-bottom:1px solid currentColor; font-size:14px; font-weight:500; line-height:1.4; }
.text-link span { font-size:23px; transition:transform .25s; }
.text-link:hover span { transform:translate(3px,-3px); }
.skip-content { position:fixed; z-index:10000; top:10px; left:16px; padding:12px 20px; background:white; transform:translateY(-150%); }
.skip-content:focus { transform:translateY(0); }
/* A clear wordmark, quiet navigation and a single invitation. */
.mass-site .topnav .nav-hold { width:calc(100% - 128px); max-width:1680px; }
.mass-site .topnav .section { border-bottom:1px solid rgba(255,255,255,.18); }
.mass-site .topnav.transparent .section { background:transparent; }
.mass-site .topnav:not(.transparent) .section { background:#111211; }
.mass-site .topnav .navbar { min-height:110px; margin:0; }
.mass-site .topnav .navbar-brand.mass-brand { height:110px; padding:0; gap:12px; }
.mass-site .mass-brand img { width:100px; height:100px; }
.mass-site .mass-brand-name { font-size:18px; letter-spacing:1px; }
.mass-site .topnav .navbar-nav { margin-top:29px; }
.mass-site .topnav ul.nav>li>a,.mass-site .topnav.topnav-top ul.nav>li>a { height:52px; line-height:52px; font-family:Arial,Helvetica,sans-serif; font-size:11px; letter-spacing:1px; padding-inline:14px; color:#fff; }
.mass-site .topnav ul.nav>li:last-child>a { border:1px solid rgba(255,255,255,.65); border-radius:2px; padding-inline:24px; margin-left:20px; }
.mass-site .topnav ul.nav>li:last-child>a:hover { background:#fff; color:#111; }
.mass-site .topnav .dropdown-menu { font-family:Arial,Helvetica,sans-serif; }
.mass-site .topnav .dropdown-menu .title { color:#ddd; font-family:Arial,Helvetica,sans-serif; font-size:11px; letter-spacing:.5px; }
.mass-site .topnav .dropdown-menu li:empty { display:none; }
/* The original festival image is the only colour in the brand's visual system. */
.mass-site #large-header.home-hero { min-height:min(1050px,100svh); height:auto; padding:210px 0 165px; display:flex; align-items:center; text-align:left; color:#fff; background-image:url('../images/bg/bg-7.jpg'); background-position:50% 53%; isolation:isolate; }
.mass-site #large-header.home-hero { background-size:cover; background-repeat:no-repeat; }
.hero-shade { position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(9,10,10,.81),rgba(9,10,10,.27) 80%),linear-gradient(0deg,rgba(9,10,10,.73),transparent 45%,rgba(9,10,10,.25)); }
.hero-content { position:relative; z-index:3; }
.mass-site .hero-eyebrow { display:flex; align-items:center; gap:12px; margin-bottom:34px; font-size:10px; letter-spacing:2.4px; }
.live-dot { width:6px; height:6px; border-radius:50%; background:#fff; box-shadow:0 0 0 5px #ffffff16; flex-shrink:0; }
.mass-site .hero-content h1 { font-size:clamp(76px,8.8vw,174px); line-height:.98; letter-spacing:-.07em; color:#fff; max-width:1250px; }
.mass-site .hero-content h1 em { display:inline-block; padding-right:.08em; }
.hero-summary { display:flex; align-items:center; gap:70px; margin-top:48px; }
.mass-site .hero-summary p { font-size:16px; color:#efefed; line-height:1.8; }
.mass-site .home-button { display:inline-flex; align-items:center; justify-content:space-between; gap:36px; min-height:58px; padding:16px 25px; font-size:13px; font-weight:600; border:1px solid transparent; border-radius:2px; transition:background .25s,color .25s,transform .25s; }
.mass-site .button-light { background:var(--paper); color:#171817; }
.mass-site .home-button span { font-size:24px; line-height:1; }
.mass-site .home-button:hover { background:#fff; transform:translateY(-3px); }
.hero-bottom { position:absolute; z-index:3; bottom:36px; left:0; right:0; display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:25px; border-top:1px solid #ffffff40; font-size:10px; letter-spacing:1.3px; }
.hero-bottom a { display:flex; align-items:center; gap:20px; font-size:12px; letter-spacing:0; }
.hero-bottom a span { font-size:23px; }
/* Spacious editorial introduction. */
.home-intro { display:grid; grid-template-columns:1fr 2.2fr; gap:70px; }
.intro-kicker { display:flex; flex-direction:column; justify-content:space-between; gap:40px; }
.mass-site .asterisk { color:var(--ink); font-size:100px; line-height:1; font-family:Georgia,serif; }
.intro-detail { display:grid; grid-template-columns:1fr auto; gap:70px; align-items:end; margin-top:36px; }
.mass-site .intro-detail p { max-width:620px; color:var(--muted); font-size:16px; line-height:1.8; }
.intro-detail .text-link { white-space:nowrap; }
.home-clients { border-top:1px solid #d9d9d3; border-bottom:1px solid #d9d9d3; padding-block:35px; }
.client-row { display:flex; align-items:center; gap:50px; }
.mass-site .client-row>p { font-size:10px; line-height:1.8; letter-spacing:1.5px; min-width:160px; }
.client-logos { flex:1; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:35px; align-items:center; }
.client-logos img { display:block; width:100%; height:60px; object-fit:contain; mix-blend-mode:multiply; filter:grayscale(1); opacity:.75; }
/* Fully clickable photographs, browsable by occasion. */
.home-experiences { background:#121412; color:#f5f4f0; scroll-margin-top:110px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:60px; margin-bottom:60px; }
.section-heading .eyebrow { margin-bottom:28px; color:#b7b9b1; }
.mass-site .section-heading>p { font-size:15px; color:#b7b9b1; line-height:1.85; margin-bottom:7px; }
.experience-tabs { display:flex; gap:38px; border-bottom:1px solid #ffffff2b; margin-bottom:36px; }
.experience-tabs button { position:relative; background:none; border:0; padding:19px 0; color:#a6aaa2; font-size:14px; cursor:pointer; text-align:left; transition:color .2s; }
.experience-tabs button::after { content:''; position:absolute; height:2px; left:0; right:0; bottom:-1px; background:#fff; transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.experience-tabs button.is-active,.experience-tabs button:hover { color:#fff; }
.experience-tabs button.is-active::after { transform:scaleX(1); }
.experience-tabs sup { font-size:9px; margin-left:7px; }
.experience-panel { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.experience-card { display:block; position:relative; isolation:isolate; overflow:hidden; height:clamp(310px,29vw,470px); background:#30342d; }
.experience-card::after { content:''; position:absolute; inset:0; z-index:0; pointer-events:none; background:linear-gradient(0deg,#080b08e8,transparent 65%),linear-gradient(180deg,#0004,transparent 40%); }
.experience-card>img { width:100%; height:100%; max-width:none; object-fit:cover; transition:transform .7s cubic-bezier(.2,.65,.25,1),filter .7s; filter:saturate(.7); }
.experience-card:hover>img,.experience-card:focus-visible>img { transform:scale(1.06); filter:saturate(1); }
.card-number { position:absolute; z-index:1; top:22px; left:24px; font-size:11px; letter-spacing:1px; color:#fff; }
.card-arrow { position:absolute; z-index:1; top:17px; right:18px; border:1px solid #ffffff70; border-radius:50%; width:39px; height:39px; display:grid; place-items:center; color:#fff; font-size:23px; transition:background .25s,color .25s,transform .25s; }
.experience-card:hover .card-arrow,.experience-card:focus-visible .card-arrow { background:#fff; color:#111; transform:rotate(45deg); }
.card-copy { position:absolute; z-index:1; bottom:28px; left:24px; right:20px; color:#fff; transition:transform .3s; }
.mass-site .card-copy h3 { font-size:clamp(22px,1.65vw,30px); line-height:1.1; letter-spacing:-1px; }
.mass-site .card-copy p { font-size:12px; line-height:1.55; color:#dbddd8; margin-top:12px; max-width:230px; }
.experience-card:hover .card-copy { transform:translateY(-5px); }
.experience-foot { display:flex; justify-content:space-between; align-items:center; gap:25px; margin-top:35px; }
.experience-foot>span { color:#a6aaa2; font-size:12px; }
.experience-foot .text-link { font-size:12px; }
/* Real event photography provides a second, human-scale focal point. */
.work-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:110px; align-items:center; }
.work-image { position:relative; height:660px; overflow:hidden; background:#222; }
.work-image>img { width:100%; height:100%; object-fit:cover; object-position:48% 50%; }
.work-image::after { content:''; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,#0009); pointer-events:none; }
.image-note { position:absolute; z-index:1; bottom:30px; left:30px; color:white; font-size:10px; letter-spacing:1.5px; }
.image-gallery-link { position:absolute; z-index:2; bottom:23px; right:25px; height:50px; width:50px; display:grid; place-items:center; border:1px solid #fff9; border-radius:50%; color:white!important; font-size:26px; transition:background .2s; }
.image-gallery-link:hover { background:#ffffff30; }
.work-copy .eyebrow { margin-bottom:30px; }
.mass-site .work-copy h2 { font-size:clamp(44px,4vw,72px); }
.mass-site .work-copy>p:not(.eyebrow) { color:var(--muted); max-width:460px; margin:30px 0 18px; font-size:15px; line-height:1.9; }
.work-signoff { display:flex; align-items:center; justify-content:space-between; margin-top:55px; padding-top:25px; border-top:1px solid #cfd0c9; font-size:12px; }
.outline-star { font-size:58px; line-height:1; }
.home-process { background:#eaeae3; }
.process-layout { display:grid; grid-template-columns:1fr 1.1fr; gap:100px; }
.process-heading .eyebrow { margin-bottom:30px; }
.mass-site .process-heading>p:not(.eyebrow) { margin:30px 0 18px; color:var(--muted); font-size:15px; }
.process-steps { border-top:1px solid #bfc2b8; }
.process-steps details { border-bottom:1px solid #bfc2b8; padding:28px 0; }
.process-steps summary { display:flex; align-items:center; gap:25px; list-style:none; cursor:pointer; }
.process-steps summary::-webkit-details-marker { display:none; }
.step-num { color:#6c7165; font-size:12px; }
.mass-site .process-steps h3 { font-size:clamp(23px,2.05vw,34px); letter-spacing:-1px; flex:1; }
.step-toggle { position:relative; width:30px; height:30px; border:1px solid #bfc2b8; border-radius:50%; flex-shrink:0; }
.step-toggle::before,.step-toggle::after { content:''; position:absolute; top:14px; left:9px; width:10px; height:1px; background:var(--ink); }
.step-toggle::after { transform:rotate(90deg); transition:transform .2s; }
.process-steps details[open] .step-toggle::after { transform:rotate(0); }
.mass-site .process-steps details>p { padding:20px 50px 5px 42px; color:var(--muted); font-size:15px; line-height:1.9; }
.testimonial-layout { display:grid; grid-template-columns:1fr 2.2fr; gap:70px; }
.quote-mark { display:block; font-family:Georgia,serif; font-size:190px; line-height:1; margin-top:25px; }
.mass-site .home-quote blockquote { border:0; padding:0; color:var(--ink); font-family:Georgia,'Times New Roman',serif; font-size:clamp(28px,2.6vw,46px); line-height:1.35; letter-spacing:-1.3px; font-style:normal; }
.quote-slides { min-height:255px; }
.home-quote figcaption { display:flex; gap:20px; align-items:center; margin-top:35px; font-size:14px; }
.quote-line { width:36px; height:1px; background:var(--ink); }
.home-quote small { display:block; font-size:11px; color:var(--muted); margin-top:2px; }
.quote-controls { display:flex; justify-content:space-between; align-items:center; border-top:1px solid #d2d4cb; padding-top:25px; margin-top:32px; }
.quote-count { font-size:11px; letter-spacing:2px; }
.quote-controls button { width:46px; height:46px; background:none; border:1px solid #bfc2b8; border-radius:50%; margin-left:8px; font-size:21px; cursor:pointer; transition:background .2s,color .2s; }
.quote-controls button:hover { background:#171817; color:white; }
.home-finale { position:relative; isolation:isolate; overflow:hidden; text-align:center; color:#fff; background:#151615; padding:110px 0 120px; }
.finale-glow { position:absolute; z-index:-1; inset:0; opacity:.16; background:url('../images/bg/bg-7.jpg') center 60%/cover no-repeat; filter:grayscale(1); }
.home-finale::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,#111211cc,transparent,#111211bb); }
.mass-site .finale-content h2 { font-size:clamp(70px,8.2vw,145px); line-height:.95; margin:35px 0 45px; }
.finale-email { display:block; margin-top:23px; color:#b7b9b1!important; font-size:12px; }
.home-footer { background:#111211; color:#fff; }
.footer-grid { display:grid; grid-template-columns:1.6fr 1.3fr .85fr .8fr; gap:60px; padding-block:65px; }
.footer-brand>a { display:flex; align-items:center; gap:12px; font-size:17px; font-weight:600; letter-spacing:1px; }
.footer-brand img { width:85px; height:85px; margin-left:-12px; }
.mass-site .footer-grid p { color:#a7aba2; font-size:12px; line-height:1.85; margin:8px 0 12px; }
.mass-site .footer-grid h2 { font-size:11px; font-weight:500; letter-spacing:1px; text-transform:uppercase; margin:12px 0 25px; }
.footer-grid>div:not(.footer-brand)>a { display:block; width:fit-content; color:#a7aba2; font-size:12px; margin-top:8px; }
.footer-grid a:hover { color:white!important; }
.footer-grid a>span[aria-hidden] { margin-left:15px; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:30px; border-top:1px solid #ffffff24; padding-block:26px; color:#a7aba2; font-size:10px; }
.footer-bottom p { font-size:10px; }
.mass-site .scrollup { display:none!important; }
@media(min-width:1800px) { .hero-content h1 { margin-top:20px; } }
@media(max-width:1200px) {
 .home-shell,.mass-site .topnav .nav-hold { width:calc(100% - 72px); }
 .mass-site .topnav ul.nav>li>a,.mass-site .topnav.topnav-top ul.nav>li>a { padding-inline:8px; font-size:10px; letter-spacing:.5px; }
 .mass-site .topnav ul.nav>li:last-child>a { margin-left:8px; padding-inline:12px; }
 .mass-site .mass-brand-name { font-size:15px; }
 .section-space { padding-block:90px; }
 .home-intro,.testimonial-layout { grid-template-columns:1fr 2.8fr; gap:45px; }
 .intro-detail { gap:35px; }
 .work-layout { gap:55px; }
 .work-image { height:560px; }
 .process-layout { gap:60px; }
 .client-row { gap:30px; }
 .client-logos { gap:25px; }
 .client-row>p { min-width:130px; }
 .footer-grid { gap:30px; }
}
@media(max-width:992px) {
 .mass-site .topnav .navbar,.mass-site .topnav .navbar-brand.mass-brand { min-height:96px; height:96px; }
 .mass-site .mass-brand img { width:88px; height:88px; }
 .mass-site .mass-brand-name { font-size:17px; }
 .mass-site .topnav .navbar-nav { margin:0; }
 .mass-site .topnav .navbar-collapse { background:#111211; }
 .mass-site .topnav:has(.navbar-collapse.in) .section { background:#111211; }
 .mass-site .topnav .navbar-collapse.in { max-height:calc(100svh - 96px); }
 .mass-site .topnav ul.nav>li>a,.mass-site .topnav.topnav-top ul.nav>li>a { height:auto; line-height:44px; padding-inline:20px; font-size:12px; }
 .mass-site .topnav ul.nav>li:last-child>a { border:0; margin:0; }
 .mass-site #large-header.home-hero { padding:180px 0 150px; min-height:800px; min-height:max(760px,92svh); }
 .hero-founded { display:none; }
 .hero-summary { gap:40px; }
 .home-intro { grid-template-columns:1fr; gap:30px; }
 .intro-kicker { flex-direction:row; align-items:center; }
 .mass-site .asterisk { font-size:50px; }
 .intro-detail { grid-template-columns:1fr 1fr; }
 .intro-detail .text-link { justify-self:end; }
 .client-row { flex-direction:column; align-items:stretch; gap:25px; }
 .mass-site .client-row>p br { display:none; }
 .client-logos { gap:30px; }
 .experience-panel { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .experience-card { height:390px; }
 .section-heading { gap:30px; }
 .section-heading>p { max-width:230px; }
 .work-layout { grid-template-columns:1fr 1fr; gap:35px; }
 .work-image { height:550px; }
 .process-layout { gap:45px; }
 .mass-site .process-steps details>p { padding-right:10px; }
 .testimonial-layout { grid-template-columns:1fr; gap:35px; }
 .quote-mark { display:none; }
 .quote-slides { min-height:200px; }
 .footer-grid { grid-template-columns:1.2fr 1fr; gap:40px; }
 .footer-bottom { flex-wrap:wrap; gap:12px 30px; }
 .footer-bottom p { flex-basis:100%; }
}
@media(max-width:600px) {
 .home-shell,.mass-site .topnav .nav-hold { width:calc(100% - 40px); }
 .section-space { padding-block:65px; }
 .mass-site h2 { font-size:43px; }
 .mass-site .eyebrow { font-size:9px; letter-spacing:1.6px; }
 .mass-site .mass-brand-name { font-size:15px; }
 .mass-site #large-header.home-hero { min-height:760px; min-height:max(740px,100svh); padding:165px 0 135px; background-position:58% center; }
 .mass-site .hero-eyebrow { font-size:8px; letter-spacing:1.45px; margin-bottom:30px; gap:9px; }
 .mass-site .hero-content h1 { font-size:clamp(56px,12.7vw,76px); letter-spacing:-.06em; }
 .hero-summary { flex-direction:column; align-items:flex-start; gap:25px; margin-top:30px; }
 .mass-site .hero-summary p { font-size:14px; }
 .mass-site .home-button { padding:14px 22px; min-height:54px; }
 .hero-bottom { bottom:25px; padding-top:18px; }
 .hero-bottom>span { max-width:110px; font-size:8px; line-height:1.7; }
 .hero-bottom a { font-size:10px; gap:10px; }
 .intro-detail { grid-template-columns:1fr; gap:18px; margin-top:25px; }
 .mass-site .intro-detail p { font-size:14px; }
 .intro-detail .text-link { justify-self:start; }
 .mass-site .asterisk { font-size:43px; }
 .home-clients { padding-block:28px; }
 .client-logos { grid-template-columns:repeat(3,minmax(0,1fr)); gap:23px 30px; }
 .client-logos img { height:43px; }
 .section-heading { flex-direction:column; align-items:flex-start; margin-bottom:25px; gap:25px; }
 .section-heading .eyebrow { margin-bottom:20px; }
 .mass-site .section-heading>p { max-width:none; font-size:13px; }
 .mass-site .section-heading>p br { display:none; }
 .experience-tabs { gap:20px; margin-bottom:22px; }
 .experience-tabs button { flex:1; font-size:11px; padding:17px 0; line-height:1.5; }
 .experience-tabs sup { display:block; margin-left:0; top:0; line-height:1.6; }
 .experience-panel { grid-template-columns:1fr; gap:18px; }
 .experience-card { height:370px; }
 .mass-site .card-copy h3 { font-size:29px; }
 .mass-site .card-copy p { max-width:none; font-size:13px; }
 .experience-foot { flex-direction:column; align-items:flex-start; gap:8px; margin-top:27px; }
 .experience-foot>span { font-size:11px; }
 .work-layout { grid-template-columns:1fr; gap:40px; }
 .work-image { height:410px; }
 .work-copy .eyebrow { margin-bottom:20px; }
 .mass-site .work-copy h2 { font-size:47px; }
 .mass-site .work-copy>p:not(.eyebrow) { font-size:14px; margin-top:22px; }
 .work-signoff { margin-top:30px; }
 .process-layout { grid-template-columns:1fr; gap:40px; }
 .process-steps details { padding:23px 0; }
 .mass-site .process-steps h3 { font-size:25px; }
 .mass-site .process-steps details>p { font-size:14px; padding:18px 5px 0 40px; }
 .quote-slides { min-height:310px; }
 .mass-site .home-quote blockquote { font-size:29px; line-height:1.4; letter-spacing:-.7px; }
 .quote-controls { margin-top:15px; }
 .home-finale { padding:75px 0 85px; }
 .mass-site .finale-content h2 { font-size:70px; margin-top:30px; }
 .finale-email { font-size:11px; }
 .footer-grid { grid-template-columns:1fr 1fr; gap:35px 25px; padding-block:40px; }
 .footer-brand { grid-column:1/-1; }
 .footer-grid>div:nth-child(2) { grid-column:1/-1; }
 .mass-site .footer-grid h2 { margin-top:0; margin-bottom:18px; }
 .footer-bottom { font-size:9px; line-height:1.8; }
 .footer-bottom p { font-size:9px; }
}
@media(prefers-reduced-motion:reduce) {
 .mass-site * { scroll-behavior:auto!important; }
 .experience-card:hover>img,.experience-card:focus-visible>img,.experience-card:hover .card-copy,.mass-site .home-button:hover { transform:none; }
}
