/* Floodtide V4.25 — official supplied logo variants.
   Symbol in site navigation and short page transition; complete supplied mark in footers.
   Case hero spacing and all portfolio designs unchanged from V4.24. */
/* Restore the original icon-only navigation proportions. */
.header-inner{grid-template-columns:64px minmax(0,1fr) auto;gap:2rem}
.site-mark{display:inline-flex;width:54px;height:54px;min-width:54px;align-items:center;justify-content:flex-start}
.site-mark img.brand-symbol-only{display:block;width:42px!important;height:42px!important;max-width:none;transform:none!important}
.legal-header img.brand-symbol-only{display:block;width:42px;height:42px;max-width:none}
.site-head img.brand-symbol-only{display:block;width:42px!important;height:42px!important;max-width:none}
/* The full logo uses the ORIGINAL combined icon + wordmark SVG, not a reconstruction. */
.footer-wordmark,.case-footer .brand-footer{display:inline-flex;width:auto;max-width:100%;align-items:center}
.footer-wordmark img.brand-full,.case-footer .brand-footer img.brand-full{display:block;width:218px!important;max-width:min(218px,65vw)!important;height:auto!important}
.legal-footer img.brand-full{display:block;width:218px;max-width:min(218px,65vw);height:auto}
@media(max-width:1100px){.header-ident{display:none}}
@media(max-width:800px){
 .header-inner{grid-template-columns:54px minmax(0,1fr) auto;gap:1rem}
 .site-mark{height:48px;min-width:48px;width:48px}
 .site-mark img.brand-symbol-only{width:38px!important;height:38px!important}
}
@media(max-width:520px){.legal-header .shell{flex-wrap:wrap;gap:.75rem 1.25rem}}
@media(max-width:370px){.footer-wordmark img.brand-full,.case-footer .brand-footer img.brand-full,.legal-footer img.brand-full{width:180px!important}}
/* Condensed case introduction: first project artwork appears sooner, without cropping the artwork. */
.case-body .case-hero{padding-top:clamp(7.7rem,9vw,9.2rem);padding-bottom:clamp(2.35rem,3.8vw,3.8rem)}
.case-body .case-overline{margin-bottom:clamp(1.7rem,2.8vw,2.75rem)}
.case-body .case-hero h1{font-size:clamp(3.95rem,6.4vw,6.6rem);line-height:1.015;max-width:15ch}
.case-body .case-hero-lead{margin-top:clamp(.85rem,1.6vw,1.35rem);font-size:clamp(1.2rem,1.7vw,1.65rem)}
.case-body .case-head-grid{gap:clamp(1.4rem,3.8vw,3.7rem)}
.case-body .case-head-aside{font-size:clamp(.88rem,1.1vw,1rem);line-height:1.6}
@media(max-width:900px){
 .case-body .case-hero{padding-top:7.3rem;padding-bottom:2.25rem}
 .case-body .case-overline{margin-bottom:1.9rem}
 .case-body .case-hero h1{font-size:clamp(3.45rem,8vw,5.5rem)}
 .case-body .case-head-grid{gap:1.6rem}
}
@media(max-width:680px){
 .case-body .case-hero{padding-top:6.8rem;padding-bottom:1.85rem}
 .case-body .case-overline{margin-bottom:1.35rem}
 .case-body .case-hero h1{font-size:clamp(2.85rem,10vw,4.6rem);line-height:1.04}
 .case-body .case-hero-lead{margin-top:.85rem;font-size:clamp(1.12rem,4.2vw,1.4rem)}
 .case-body .case-head-grid{gap:1.1rem}
 .case-body .case-head-aside{font-size:.92rem;line-height:1.55}
}
/* Quiet branded transition. No fake percentage, no dependency on video/fonts/images. */
.ft-loader{position:fixed;inset:0;z-index:9999;background:#212833;color:#fff8ee;display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility 0s linear .28s;isolation:isolate}
.ft-loader::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(134,155,178,.095),transparent 67%);pointer-events:none}
.ft-loader-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.55rem;padding:1.25rem}
.ft-loader img.brand-symbol-only{width:clamp(78px,11vw,102px);height:auto;aspect-ratio:1;display:block}
.ft-loader-rule{position:relative;display:block;width:76px;height:1px;background:rgba(255,248,238,.3);overflow:hidden}
.ft-loader-rule::after{content:'';position:absolute;inset:0;background:#f9cbda;transform-origin:left;animation:ft-loader-sweep 1.05s ease-in-out infinite alternate}
@keyframes ft-loader-sweep{from{transform:scaleX(.13)}to{transform:scaleX(1)}}
.ft-js.ft-intro .ft-loader,.ft-js.ft-leaving .ft-loader{visibility:visible;opacity:1;transition:opacity .22s ease,visibility 0s;animation:ft-loader-failsafe 0s 2.5s forwards}
@keyframes ft-loader-failsafe{to{visibility:hidden;opacity:0}}
@media(prefers-reduced-motion:reduce){.ft-loader{display:none!important}.ft-loader-rule::after{animation:none!important}}
@media print{.ft-loader{display:none!important}}
