:root { --zx-ink:#3e0600; --zx-paper:#ffeeec; --zx-blue:#ffeeec; --zx-pink:#ffdad3; --zx-mint:#ffeeec; --zx-yellow:#ffc0b7; --zx-accent:#ff4134; --zx-ease:cubic-bezier(.23,1,.32,1); }
body { position:relative; }
.zx-section,.zx-footer { color:var(--zx-ink); font-family:'Bricolage Grotesque',sans-serif; }
.zx-section { width:min(100%,1440px); margin:0 auto; padding:clamp(64px,8vw,120px) clamp(24px,5vw,80px); position:relative; isolation:isolate; background:var(--zx-paper); z-index:10; }
.zx-section p,.zx-footer p { font-size:18px; line-height:1.6; margin:0; }
.zx-section h2,.zx-footer h2 { margin:0; font-size:clamp(52px,6.6vw,100px); line-height:1.03; letter-spacing:-.04em; font-weight:600; text-wrap:balance; }
.zx-section-heading >p { margin-top:32px; max-width:42ch; }
.zx-section h2 span { color:#6a0b00; }
.zx-heading-wide { display:grid; grid-template-columns:1.5fr 1fr; align-items:end; gap:60px; margin-bottom:64px; }
.zx-heading-wide >div { max-width:38ch; padding-bottom:8px; }
.zx-context-note { margin-top:16px!important; font-size:16px!important; color:#6a0b00; line-height:1.5!important; }
.zx-arrow { width:24px; height:24px; flex-shrink:0; }
.zx-blue { background:var(--zx-blue); }.zx-pink { background:var(--zx-pink); }.zx-mint { background:var(--zx-mint); }.zx-yellow { background:var(--zx-yellow); }
.zx-text-link { display:inline-flex; align-items:center; gap:16px; font-size:18px; margin-top:28px; color:inherit; position:relative; padding-bottom:8px; }
.zx-text-link::after { content:''; position:absolute; bottom:0; inset-inline:0; height:1px; background:currentColor; transform-origin:left; transition:transform 250ms var(--zx-ease); }
.zx-link-stage { position:relative; isolation:isolate; overflow:clip; }
.zx-link-stage--intro { height:270px; padding-top:30px; background:var(--zx-paper); margin-top:30px; border-bottom:1px solid rgb(32 32 28 / .25); }
.zx-link-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; width:min(760px,calc(100% - 64px)); margin:0 auto; padding:0; position:relative; }
.zx-link-slot { min-width:0; transform-origin:center 90%; }
.zx-link-slot:nth-child(1) { transform:rotate(-9deg) translateY(8px); }
.zx-link-slot:nth-child(2) { transform:rotate(-3deg); }
.zx-link-slot:nth-child(3) { transform:rotate(4deg) translateY(4px); }
.zx-link-slot:nth-child(4) { transform:rotate(10deg) translateY(13px); }
.zx-link-card { display:flex; position:relative; min-height:236px; flex-direction:column; justify-content:space-between; gap:20px; color:var(--zx-ink); padding:22px; border-radius:14px; font-size:18px!important; line-height:1.3; font-weight:500; text-decoration:none; transition:transform 250ms var(--zx-ease),box-shadow 250ms var(--zx-ease); }
.zx-card-icon { display:block; width:62px; height:62px; margin:0 auto; }
.zx-card-icon svg { display:block; width:100%; height:100%; transition:transform 250ms var(--zx-ease); }
.zx-link-card >.zx-arrow { align-self:flex-end; }
.zx-link-stage:focus-within { overflow:visible; z-index:30; }
.zx-link-stage:focus-within .zx-link-slot { transform:none!important; }
.zx-divider { height:1px; width:calc(100% - 32px); margin:56px auto; position:relative; z-index:20; flex-shrink:0; }
.zx-divider>span { display:block; width:100%; height:100%; background:rgb(32 32 28 / .3); transform-origin:left; }
.zx-journey { position:absolute; inset:0 0 auto; width:100%; z-index:50; pointer-events:none; overflow:hidden; }
#zx-route-svg { display:block; width:100%; overflow:visible; }
.zx-route-base { stroke:#ff9b8b; stroke-opacity:.2; stroke-width:1; }
.zx-route-progress { stroke:#6a0b00; stroke-opacity:.7; stroke-width:1.25; }
.zx-traveller { position:absolute; top:0; left:0; width:18px; height:18px; background:var(--zx-accent); border:1.5px solid var(--zx-ink); opacity:0; box-shadow:0 3px 8px rgb(32 32 28 / .15); }
.zx-case-list { display:grid; gap:40px; }
.zx-case { display:grid; grid-template-columns:1fr 1.1fr; border-radius:24px; overflow:clip; }
.zx-case--mint { background:#ffeeec; }.zx-case--pink { background:#ffdad3; }
.zx-case:nth-child(even) .zx-case-image { order:2; }.zx-case:nth-child(even) .zx-case-copy { order:1; }
.zx-case-image { position:relative; min-height:520px; overflow:hidden; }
.zx-case-image>img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform 700ms var(--zx-ease); }
.zx-case-sticker { position:absolute; top:28px; left:28px; padding:10px 16px; background:var(--zx-paper); color:var(--zx-ink); transform:rotate(-5deg); font-size:16px; border-radius:3px; }
.zx-case-copy { display:flex; flex-direction:column; align-items:flex-start; padding:44px; gap:24px; }
.zx-case-category { font-size:16px!important; }
.zx-case h3 { font-size:clamp(40px,4.6vw,68px); letter-spacing:-.04em; line-height:1.04; font-weight:600; margin:0; }
.zx-case-open { margin-top:auto; width:100%; display:flex; align-items:center; justify-content:space-between; gap:18px; border:0; border-top:1px solid rgb(32 32 28 / .25); padding:20px 0 0; background:transparent; color:inherit; font:inherit; font-size:18px; cursor:pointer; text-align:left; }
.zx-arrow-circle { display:grid; place-items:center; width:56px; height:56px; border:1px solid currentColor; border-radius:50%; transition:background 220ms ease,color 220ms ease,transform 250ms var(--zx-ease); }
.zx-case-panel { grid-column:1/-1; order:3; }
.zx-panel { display:grid; grid-template-rows:0fr; transition:grid-template-rows 380ms var(--zx-ease); }
.zx-panel-inner { min-height:0; overflow:hidden; }
.zx-disclosure.is-open>.zx-panel { grid-template-rows:1fr; }
.zx-case-details { padding:24px 44px 44px; display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.zx-case-details h4 { font-size:22px; letter-spacing:-.02em; margin:0 0 12px; }
.zx-case-details p { font-size:18px; }
.zx-team-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.zx-person { background:transparent; min-width:0; }
.zx-person-photo { position:relative; border-radius:150px 150px 16px 16px; overflow:hidden; aspect-ratio:1/1.1; }
.zx-person-photo img { width:100%; height:100%; object-fit:cover; transition:transform 500ms var(--zx-ease),filter 500ms ease; }
.zx-person-symbol { position:absolute; bottom:14px; right:14px; display:grid; place-items:center; width:54px; height:54px; background:var(--zx-yellow); border-radius:50%; transform:rotate(-12deg); transition:transform 300ms var(--zx-ease); }
.zx-person-symbol svg { width:32px; height:32px; }
.zx-person:nth-child(2) .zx-person-symbol { background:var(--zx-pink); }.zx-person:nth-child(3) .zx-person-symbol { background:var(--zx-mint); }.zx-person:nth-child(4) .zx-person-symbol { background:var(--zx-blue); }
.zx-person-name { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:24px 0 8px; }
.zx-person h3 { font-size:clamp(24px,2.2vw,32px); font-weight:600; letter-spacing:-.03em; line-height:1.1; margin:0; }
.zx-person-name a { display:grid; place-items:center; min-width:44px; height:44px; color:inherit; border-radius:50%; transition:background 200ms ease; }
.zx-person-role { font-size:16px!important; color:#6a0b00; }
.zx-person-thought { margin-top:22px!important; padding-top:18px; border-top:1px solid rgb(32 32 28 / .25); }
.zx-faq { display:grid; grid-template-columns:1fr 1.08fr; gap:70px; align-items:start; }
.zx-faq h2 { font-size:clamp(48px,5.8vw,84px); }
.zx-faq-list { border-top:1px solid var(--zx-ink); }
.zx-faq-item { padding:0 24px; border-bottom:1px solid rgb(32 32 28 / .25); transition:background 220ms ease; }
.zx-faq-item h3 { margin:0; font-size:20px; font-weight:500; line-height:1.4; }
.zx-faq-item button { display:flex; justify-content:space-between; align-items:center; gap:24px; width:100%; padding:27px 0; border:0; color:inherit; font:inherit; text-align:left; background:transparent; cursor:pointer; }
.zx-plus { position:relative; width:22px; height:22px; flex:0 0 22px; transition:transform 300ms var(--zx-ease); }
.zx-plus::before,.zx-plus::after { content:''; position:absolute; background:currentColor; top:10px; left:0; height:1.5px; width:22px; }
.zx-plus::after { transform:rotate(90deg); transition:transform 300ms var(--zx-ease); }
.zx-faq-item.is-open { background:#ffdad3; }
.zx-faq-item.is-open .zx-plus::after { transform:rotate(0deg); }
.zx-faq-item .zx-panel p { padding:0 0 28px; color:#6a0b00; }
#contact .zx-submit { min-width:260px; min-height:70px; padding:20px 26px; gap:16px; display:flex!important; align-items:center; justify-content:space-between; font-size:22px!important; border:1px solid var(--zx-ink); border-radius:5px; background:var(--zx-yellow)!important; color:var(--zx-ink)!important; transition:background 200ms ease,color 200ms ease,transform 220ms var(--zx-ease),box-shadow 220ms ease; }
#contact .zx-submit .pe--button--text { opacity:1!important; font:inherit!important; }
.zx-submit-socket { width:18px; height:18px; border:1.5px dashed currentColor; flex:0 0 18px; }
.zx-submit.is-docked .zx-submit-socket { border:1.5px solid currentColor; background:var(--zx-accent); }
.zx-submit.is-docked { box-shadow:0 5px 16px rgb(32 32 28 / .1); }
.form-field:focus-within { position:relative; }
.form-field input:focus,.form-field textarea:focus { outline:2px solid var(--zx-ink); outline-offset:3px; }
.pe--button .pb--marquee--wrap { display:none!important; }
.pe--button .pe--button--text,.pe--button .pe--button--icon { opacity:1!important; }
.pe--button .pe--button--text { color:inherit!important; }
.pe--button .button--text--hover { display:none!important; }
.pe--button .pb--handle { transition:background 220ms ease,color 220ms ease,transform 220ms var(--zx-ease); }
#site-navigation .menu-item { opacity:1!important; }
#site-navigation .main-menu { display:flex!important; gap:6px; margin:0; padding:0; align-items:center; }
#site-navigation .main-menu>li { margin:0; padding:0; list-style:none; }
#site-navigation a { display:inline-flex!important; align-items:center; padding:10px 16px!important; white-space:nowrap; background:#ffdad3; font-size:16px!important; color:#6a0b00!important; opacity:1!important; border-radius:24px; transition:background 200ms ease,color 200ms ease; }
#site-navigation a:focus-visible { background:var(--zx-yellow); }
.zx-on-footer #masthead img[src*="logo"],.zx-on-footer #masthead img[src*="symbol"] { filter:invert(1); }
.zx-footer { background:var(--zx-ink); color:var(--zx-paper); padding:90px clamp(24px,5vw,80px) 32px; border-radius:32px 32px 0 0; overflow:clip; position:relative; z-index:7; }
.zx-footer-top { display:flex; justify-content:space-between; gap:60px; align-items:flex-end; max-width:1360px; margin:0 auto; }
.zx-footer h2 { font-size:clamp(58px,8vw,120px); }.zx-footer h2 span { color:var(--zx-yellow); }
.zx-footer-contact { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:18px 0; border-bottom:1px solid currentColor; color:inherit; font-size:28px; flex-shrink:0; }
.zx-footer-contact svg { width:40px; height:40px; transition:transform 250ms var(--zx-ease); }
.zx-link-stage--return { margin-top:68px; padding:20px 0 30px; min-height:340px; border-bottom:1px solid rgb(255 250 241 / .35); }
.zx-link-stage--return>p { text-align:center; color:var(--zx-yellow); margin-bottom:32px; }
.zx-link-stage--return .zx-link-cards { width:min(900px,calc(100% - 32px)); gap:26px; }
.zx-link-stage--return .zx-link-card { min-height:238px; }
.zx-footer-word { display:flex; align-items:baseline; justify-content:center; color:inherit; font-size:clamp(96px,23vw,350px)!important; font-weight:600; line-height:1; letter-spacing:-.04em; margin:26px 0 24px; text-decoration:none; }
.zx-footer-word>span { display:block; transition:transform 350ms var(--zx-ease),color 350ms ease; }
.zx-footer-word-mark { width:13%; margin-left:3%; }
.zx-footer-word-mark .zx-arrow { width:100%; height:auto; stroke-width:1; }
.zx-footer-bottom { max-width:1360px; margin:auto; padding-top:28px; border-top:1px solid rgb(255 250 241 / .35); display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px 40px; align-items:center; }
.zx-footer-bottom nav { display:flex; flex-wrap:wrap; gap:24px; }
.zx-footer-bottom a { display:inline-flex; align-items:center; gap:10px; min-height:44px; color:inherit; font-size:16px; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:7px; transition:text-decoration-color 180ms ease; }
.zx-footer-bottom .zx-context-note { flex-basis:100%; color:#ff9b8b; margin:0!important; }
.zx-footer :focus-visible { outline-color:var(--zx-yellow); }
.plyr__sr-only,.plyr__progress__buffer { font-size:16px!important; }
@media (hover:hover) and (pointer:fine) {
  .zx-link-card:hover { transform:translateY(-12px) rotate(-3deg); box-shadow:0 14px 25px rgb(32 32 28 / .12); }
  .zx-link-card:hover .zx-card-icon svg { transform:rotate(-10deg) scale(1.08); }
  .zx-text-link:hover::after { transform:scaleX(.3); }
  .zx-case:hover .zx-case-image>img { transform:scale(1.045); }
  .zx-case-open:hover .zx-arrow-circle,.zx-case-open:focus-visible .zx-arrow-circle { background:var(--zx-ink); color:var(--zx-paper); transform:rotate(45deg); }
  .zx-person:hover .zx-person-photo img { transform:scale(1.05); }
  .zx-person:hover .zx-person-symbol { transform:rotate(12deg); }
  .zx-person-name a:hover { background:var(--zx-yellow); }
  .zx-faq-item:not(.is-open):hover { background:#ffeeec; }
  #site-navigation a:hover { background:var(--zx-ink)!important; color:var(--zx-paper)!important; }
  .pe--button .pb--handle:hover { transform:translateY(-3px); background:var(--zx-ink)!important; color:var(--zx-paper)!important; }
  #contact .zx-submit:hover { background:var(--zx-ink)!important; color:var(--zx-paper)!important; transform:translateY(-3px); }
  .zx-footer-contact:hover svg { transform:translate(5px,-5px); }
  .zx-footer-word:hover>span:nth-child(odd) { transform:translateY(-10px) rotate(-3deg); color:var(--zx-yellow); }
  .zx-footer-word:hover>span:nth-child(even) { transform:translateY(5px) rotate(3deg); }
  .zx-footer-bottom a:hover { text-decoration-color:currentColor; }
}
.zx-case-open:active,.zx-submit:active,.zx-link-card:active { transform:scale(.98); }
@media (max-width:1100px) {
  #masthead { display:none!important; }.local-mobile-header { display:flex; }
  .zx-heading-wide { gap:32px; }.zx-case-copy { padding:32px; }.zx-case-image { min-height:440px; }
  .zx-team-grid { gap:18px; }.zx-person h3 { font-size:25px; }
  .zx-faq { gap:36px; }
}
@media (max-width:767px) {
  .zx-section { padding:56px 24px; }.zx-section h2 { font-size:clamp(42px,9.5vw,64px); letter-spacing:-.035em; }
  .zx-heading-wide { grid-template-columns:1fr; gap:28px; margin-bottom:36px; }
  .zx-section p { font-size:18px; }.zx-context-note { font-size:16px!important; }
  .zx-link-stage--intro { height:420px; padding-top:30px; margin-top:8px; }
  .zx-link-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; width:calc(100% - 64px); max-width:440px; }
  .zx-link-card { min-height:170px; padding:16px; font-size:16px!important; gap:12px; }
  .zx-card-icon { width:44px; height:44px; }.zx-link-card>.zx-arrow { width:20px; height:20px; }
  .zx-divider { width:calc(100% - 16px); margin-block:30px; }
  .zx-traveller { width:14px; height:14px; }
  .zx-case { grid-template-columns:1fr; border-radius:18px; }.zx-case-image { min-height:0; aspect-ratio:1.25; }
  .zx-case-copy { padding:28px 24px; gap:22px; }.zx-case h3 { font-size:42px; }
  .zx-case:nth-child(even) .zx-case-image,.zx-case:nth-child(even) .zx-case-copy { order:initial; }
  .zx-case-details { grid-template-columns:1fr; padding:0 24px 28px; gap:24px; }.zx-case-list { gap:28px; }
  .zx-team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 18px; }
  .zx-person h3 { font-size:24px; }.zx-person-name { align-items:flex-start; margin-top:18px; gap:2px; }
  .zx-person-name a { min-width:30px; height:30px; }.zx-person-name .zx-arrow { width:20px; height:20px; }
  .zx-person-role { font-size:16px!important; }.zx-person-thought { font-size:16px!important; line-height:1.5!important; margin-top:16px!important; }
  .zx-person-symbol { width:38px; height:38px; bottom:9px; right:9px; }.zx-person-symbol svg { width:24px; height:24px; }
  .zx-faq { grid-template-columns:1fr; gap:36px; }.zx-faq-item { padding-inline:16px; }.zx-faq-item h3 { font-size:18px; }.zx-faq-item button { padding-block:24px; }
  #contact .zx-submit { min-width:240px; min-height:64px; font-size:20px!important; }
  .zx-submit-socket { width:14px; height:14px; flex-basis:14px; }
  .zx-footer { padding:60px 24px 26px; border-radius:22px 22px 0 0; }.zx-footer-top { flex-direction:column; align-items:flex-start; gap:36px; }
  .zx-footer h2 { font-size:clamp(48px,10vw,72px); }.zx-footer-contact { font-size:24px; min-width:210px; }
  .zx-link-stage--return { margin-top:36px; padding-bottom:32px; min-height:480px; }
  .zx-link-stage--return .zx-link-cards { max-width:440px; gap:18px; width:calc(100% - 20px); }.zx-link-stage--return .zx-link-card { min-height:174px; }
  .zx-footer-word { font-size:24vw!important; margin-block:24px; }.zx-footer-bottom nav { gap:12px 20px; }
}
.local-reduce-motion .zx-journey { display:none; }
.local-reduce-motion .zx-link-stage { overflow:visible; height:auto; min-height:0; padding-block:32px; }
.local-reduce-motion .zx-link-slot { transform:none!important; }
.local-reduce-motion .zx-submit-socket { background:var(--zx-accent); border:1.5px solid currentColor; }
.local-reduce-motion .zx-panel { transition:none; }
@media (prefers-reduced-motion:reduce) {
  .zx-link-slot,.zx-link-card,.zx-person-photo img,.zx-arrow-circle,.zx-footer-word>span { transform:none!important; }
  .zx-journey { display:none; }
}
