.floo-dialog{position:fixed!important;inset:4vh 3vw!important;width:auto!important;height:auto!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:1px solid color-mix(in srgb,var(--floo-ink) 45%,transparent);border-radius:8px;background:var(--floo-paper);color:var(--floo-ink);box-shadow:0 28px 90px rgba(8,37,51,.35);overflow:hidden}
.floo-dialog::backdrop{background:rgba(19,49,62,.34);backdrop-filter:blur(3px)}
.floo-dialog__bar{height:84px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:.7rem 1.35rem;border-bottom:1px solid color-mix(in srgb,var(--floo-ink) 8%,transparent);background:var(--floo-paper)}.floo-dialog__bar img{width:58px;height:58px;object-fit:contain}.floo-dialog__bar strong{font-family:var(--floo-serif);font-size:1.5rem;font-weight:480}.floo-dialog__close{width:45px;height:45px;border:0;background:none;font-size:2rem;line-height:1;cursor:pointer}.floo-dialog__close:hover{color:var(--floo-accent)}
/* Gallery: one fixed viewport. Changing photos can never resize or move it. */
.floo-gallery__layout{height:calc(92vh - 84px);display:grid;grid-template-columns:minmax(230px,19%) minmax(460px,1fr) minmax(260px,24%);grid-template-areas:"list visual info";gap:clamp(18px,2vw,36px);padding:2rem;overflow:hidden}
.floo-gallery__list{grid-area:list;overflow-y:auto;overscroll-behavior:contain;padding:.15rem .5rem .15rem 0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--floo-accent) 55%,transparent) transparent}
.floo-gallery__list::-webkit-scrollbar{width:4px}.floo-gallery__list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--floo-accent) 55%,transparent);border-radius:999px}
.floo-gallery__list button{width:100%;display:grid;grid-template-columns:8px 112px 1fr;gap:.65rem;align-items:center;border:0;background:none;padding:.4rem 0;text-align:left;cursor:pointer;color:inherit}.floo-gallery__list button[aria-current="true"]{color:var(--floo-ink)}.floo-gallery__dot{width:8px;height:8px;border-radius:50%;background:transparent}.floo-gallery__list button[aria-current="true"] .floo-gallery__dot{background:var(--floo-accent)}.floo-gallery__thumb{height:72px;display:grid;place-items:center;background:color-mix(in srgb,var(--floo-coast) 10%,var(--floo-paper));overflow:hidden}.floo-gallery__thumb img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.floo-gallery__item-copy{min-width:0;display:flex;flex-direction:column}.floo-gallery__item-copy strong{font-family:var(--floo-serif);font-size:1.02rem;font-weight:500;line-height:1.08}.floo-gallery__item-copy small{font-size:.72rem;line-height:1.2;opacity:.75;margin-top:.2rem}
.floo-gallery__visual{grid-area:visual;display:grid;grid-template-rows:minmax(0,1fr) 64px;min-width:0;min-height:0}.floo-gallery__image-stage{min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;background:color-mix(in srgb,var(--floo-coast) 5%,var(--floo-paper));position:relative}.floo-gallery__image-stage img{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center center!important;margin:auto!important;transform:none!important}
.floo-gallery__arrows{display:flex;justify-content:space-between;align-items:center}.floo-gallery__arrows button{border:0;background:none;font-size:2.3rem;padding:.3rem .5rem;cursor:pointer}.floo-gallery__arrows button:hover{color:var(--floo-accent)}
.floo-gallery__info{grid-area:info;align-self:center;position:relative;padding:1.5rem 2rem 1.5rem .25rem;min-width:0}.floo-gallery__info::after{content:"";position:absolute;right:0;top:-8vh;bottom:-8vh;width:60px;background:repeating-linear-gradient(90deg,var(--floo-coast) 0 10px,transparent 10px 22px);opacity:.65;z-index:-1}.floo-gallery__info strong{display:block;font-family:var(--floo-serif);font-size:clamp(2.5rem,4.6vw,5.6rem);font-weight:420;line-height:.9;letter-spacing:-.035em;overflow-wrap:anywhere}.floo-gallery__info p{font-size:1rem;line-height:1.45;margin:1.6rem 0 0;padding-top:1.5rem;border-top:1px solid color-mix(in srgb,var(--floo-accent) 50%,transparent)}.floo-gallery__info span{display:block;margin-top:.6rem;font-size:.8rem;opacity:.72}
/* Videos use the same fixed dialog philosophy. */
.floo-videos__layout{height:calc(92vh - 84px);display:grid;grid-template-columns:minmax(240px,30%) 1fr;gap:2rem;padding:2rem;overflow:hidden}.floo-video-list{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:.4rem}.floo-video-list button{display:grid;grid-template-columns:120px 1fr;gap:.8rem;width:100%;padding:.55rem;border:0;border-bottom:1px solid color-mix(in srgb,var(--floo-ink) 15%,transparent);background:none;color:inherit;text-align:left;cursor:pointer}.floo-video-list button[aria-current="true"]{color:var(--floo-accent)}.floo-video-list img{width:120px;height:72px;object-fit:cover}.floo-video-list span{display:flex;flex-direction:column}.floo-video-list strong{font-family:var(--floo-serif);font-size:1.08rem}.floo-video-list small{font-size:.72rem;opacity:.7}.floo-video-stage{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}.floo-video-stage__player{display:grid;place-items:center;overflow:hidden;background:#07121a}.floo-video-stage__player iframe,.floo-video-stage__player video{width:100%;height:100%;border:0;object-fit:contain}.floo-video-stage__copy{padding:1.2rem 0 0}.floo-video-stage__copy h3{font-family:var(--floo-serif);font-size:2.1rem;margin:0}.floo-video-stage__copy p{margin:.4rem 0}
/* Contact */
.floo-engage{inset:8vh max(8vw,40px)!important;max-width:920px!important;margin-inline:auto!important}.floo-engage__body{padding:2.3rem max(5vw,34px);overflow:auto;max-height:calc(84vh - 84px)}.floo-engage h2{font-family:var(--floo-serif);font-size:clamp(2.8rem,5vw,5rem);font-weight:420;margin:0 0 1rem;line-height:.95}.floo-engage form{display:grid;gap:1rem;margin-top:2rem}.floo-engage label{display:grid;gap:.35rem;font-size:.85rem}.floo-engage input,.floo-engage textarea{width:100%;border:1px solid color-mix(in srgb,var(--floo-ink) 28%,transparent);background:transparent;padding:.8rem;color:inherit;border-radius:0}.floo-engage textarea{min-height:130px;resize:vertical}.floo-engage button[type="submit"]{justify-self:start;border:0;border-bottom:1px solid var(--floo-ink);background:none;padding:.5rem 0;cursor:pointer}.floo-engage__status{min-height:1.4em;white-space:pre-line}.floo-honeypot{position:absolute!important;left:-9999px!important}
@media(max-width:780px){
 .floo-dialog{inset:10px!important;border-radius:5px}.floo-dialog__bar{height:72px;padding:.5rem .85rem;position:relative;z-index:5}.floo-dialog__bar img{width:50px;height:50px}.floo-dialog__bar strong{font-size:1.2rem}
 .floo-gallery__layout{height:calc(100dvh - 94px);grid-template-columns:1fr;grid-template-rows:minmax(250px,48dvh) 54px auto minmax(92px,1fr);grid-template-areas:"visual" "arrows" "info" "list";gap:.5rem;padding:.65rem .8rem .8rem;overflow:hidden}.floo-gallery__visual{display:contents}.floo-gallery__image-stage{grid-area:visual;min-height:0;align-self:stretch}.floo-gallery__arrows{grid-area:arrows;padding:0 .35rem}.floo-gallery__arrows button{font-size:2rem}.floo-gallery__info{grid-area:info;align-self:start;padding:.3rem .3rem .6rem;max-height:22dvh;overflow:auto}.floo-gallery__info::after{display:none}.floo-gallery__info strong{font-size:clamp(2rem,11vw,3.7rem);line-height:.92}.floo-gallery__info p{margin:.65rem 0 0;padding-top:.65rem;font-size:.86rem}.floo-gallery__info span{font-size:.72rem}.floo-gallery__list{grid-area:list;min-height:0;max-height:none;overflow-y:auto;margin:0 auto;width:100%;padding:.2rem}.floo-gallery__list button{grid-template-columns:7px 78px 1fr;gap:.5rem}.floo-gallery__thumb{height:54px}.floo-gallery__item-copy strong{font-size:.92rem}.floo-gallery__item-copy small{font-size:.67rem}
 .floo-videos__layout{height:calc(100dvh - 94px);grid-template-columns:1fr;grid-template-rows:minmax(230px,45dvh) 1fr;gap:.8rem;padding:.7rem;overflow:hidden}.floo-video-stage{grid-row:1}.floo-video-list{grid-row:2}.floo-video-list button{grid-template-columns:96px 1fr}.floo-video-list img{width:96px;height:58px}.floo-video-stage__copy{display:none}
 .floo-engage{inset:10px!important}.floo-engage__body{max-height:calc(100dvh - 92px);padding:1.4rem 1rem}.floo-engage h2{font-size:2.8rem}
}
.floo-engage__grid{padding:2.3rem max(5vw,34px);overflow:auto;max-height:calc(84vh - 84px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:3rem}.floo-engage__intro h2{font-family:var(--floo-serif);font-size:clamp(2.8rem,5vw,5rem);font-weight:420;margin:0 0 1rem;line-height:.95}.floo-kicker{color:var(--floo-accent);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.floo-contact-form{display:grid;gap:1rem}.floo-contact-form label{display:grid;gap:.35rem;font-size:.85rem}.floo-contact-form input,.floo-contact-form textarea{width:100%;border:1px solid color-mix(in srgb,var(--floo-ink) 28%,transparent);background:transparent;padding:.8rem;color:inherit;border-radius:0}.floo-contact-form textarea{min-height:130px;resize:vertical}.floo-consent{grid-template-columns:auto 1fr!important;align-items:start}.floo-consent input{width:auto!important;margin-top:.25rem}.floo-submit{justify-self:start;border:0;border-bottom:1px solid var(--floo-ink);background:none;padding:.5rem 0;cursor:pointer}.floo-form-status{min-height:1.4em;white-space:pre-line}
@media(max-width:780px){.floo-engage__grid{max-height:calc(100dvh - 92px);padding:1.4rem 1rem;grid-template-columns:1fr;gap:1.5rem}.floo-engage__intro h2{font-size:2.8rem}}

/* Vita/CV: the PDF stays on the Floo page and behaves like a large document image. */
.floo-vita{inset:3vh 7vw!important}
.floo-vita__stage{height:calc(94vh - 84px);display:grid;grid-template-rows:minmax(0,1fr) auto;background:color-mix(in srgb,var(--floo-coast) 10%,var(--floo-paper));overflow:hidden}
.floo-vita__stage iframe{display:block;width:100%;height:100%;min-height:0;border:0;background:#fff}
.floo-vita__fallback{margin:0;padding:.65rem 1rem;text-align:center;font-size:.78rem;border-top:1px solid color-mix(in srgb,var(--floo-ink) 10%,transparent);background:var(--floo-paper)}
.floo-vita__fallback a{font-weight:600}
@media(max-width:780px){
 .floo-vita{inset:0!important;border-radius:0}
 .floo-vita__stage{height:calc(100dvh - 84px)}
 .floo-vita__fallback{font-size:.72rem;padding:.55rem .75rem}
}


/* =========================================================
   Floo 2.0.9 – gallery cleanup
   Full photo, horizontal thumbnail filmstrip, fixed title below.
   ========================================================= */
.floo-gallery__layout{
  height:calc(92vh - 84px);
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) 84px auto;
  grid-template-areas:"visual" "nav" "info";
  gap:.55rem;
  padding:1rem 1.4rem 1.25rem;
  overflow:hidden;
}
.floo-gallery__visual{grid-area:visual;display:block;min-width:0;min-height:0}
.floo-gallery__image-stage{
  width:100%;height:100%;min-width:0;min-height:0;
  display:grid;place-items:center;overflow:hidden;
  background:color-mix(in srgb,var(--floo-coast) 5%,var(--floo-paper));
  padding:.35rem;
}
.floo-gallery__image-stage img{
  display:block!important;
  width:100%!important;height:100%!important;
  max-width:100%!important;max-height:100%!important;
  object-fit:contain!important;object-position:center!important;
  margin:0!important;transform:none!important;
}
.floo-gallery__arrows{
  grid-area:nav;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  gap:.5rem;
  align-items:center;
  min-width:0;
}
.floo-gallery__arrows>button{border:0;background:none;font-size:2.15rem;padding:.25rem;cursor:pointer;color:inherit}
.floo-gallery__arrows>button:hover{color:var(--floo-accent)}
.floo-gallery__list{
  display:flex;
  flex-flow:row nowrap;
  gap:.45rem;
  min-width:0;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--floo-accent) 45%,transparent) transparent;
  padding:.2rem .05rem;
}
.floo-gallery__list::-webkit-scrollbar{height:4px}
.floo-gallery__list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--floo-accent) 45%,transparent);border-radius:999px}
.floo-gallery__list button{
  flex:0 0 86px;
  width:86px;height:64px;
  display:block;
  border:2px solid transparent;
  background:transparent;
  padding:0;
  cursor:pointer;
  overflow:hidden;
  opacity:.72;
  transition:opacity .16s ease,border-color .16s ease,transform .16s ease;
}
.floo-gallery__list button:hover{opacity:1;transform:translateY(-1px)}
.floo-gallery__list button[aria-current="true"]{opacity:1;border-color:var(--floo-accent)}
.floo-gallery__thumb{display:block;width:100%;height:100%;overflow:hidden;background:var(--floo-paper)}
.floo-gallery__thumb img{display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center!important}
.floo-gallery__dot,.floo-gallery__item-copy{display:none!important}
.floo-gallery__info{
  grid-area:info;
  align-self:start;
  position:relative;
  padding:.35rem .15rem 0;
  min-width:0;
  text-align:center;
}
.floo-gallery__info::after{display:none}
.floo-gallery__info strong{
  display:block;
  font-family:var(--floo-serif);
  font-size:clamp(1.45rem,2.3vw,2.35rem);
  font-weight:500;
  line-height:1.05;
  letter-spacing:-.015em;
  overflow-wrap:anywhere;
}
.floo-gallery__info p{margin:.45rem auto 0;padding:0;border:0;max-width:72ch;font-size:.9rem;line-height:1.35}
.floo-gallery__info span{display:block;margin-top:.2rem;font-size:.72rem;opacity:.7}
@media(max-width:760px){
  .floo-gallery__layout{
    height:calc(100dvh - 92px);
    grid-template-rows:minmax(0,1fr) 70px auto;
    gap:.35rem;
    padding:.55rem .55rem .7rem;
  }
  .floo-gallery__image-stage{padding:.15rem}
  .floo-gallery__arrows{grid-template-columns:40px minmax(0,1fr) 40px;gap:.25rem}
  .floo-gallery__arrows>button{font-size:1.8rem;padding:.15rem}
  .floo-gallery__list{gap:.3rem;padding:.15rem 0}
  .floo-gallery__list button{flex-basis:70px;width:70px;height:52px}
  .floo-gallery__info{padding:.25rem .35rem 0;max-height:20dvh;overflow-y:auto}
  .floo-gallery__info strong{font-size:clamp(1.25rem,6.5vw,1.8rem)}
  .floo-gallery__info p{font-size:.8rem;margin-top:.35rem}
  .floo-gallery__info span{font-size:.68rem}
}
