/* One timing and viewport contract; each page keeps its own visual entrance. */
:root{--entrance-reveal:850ms;--entrance-ease:cubic-bezier(.76,0,.24,1)}
.page-loader{display:none!important;pointer-events:none;overflow:hidden}
html.page-entering .page-loader{
  position:fixed!important;inset:0!important;z-index:10000!important;
  display:grid!important;place-items:center;
  animation:entrance-failsafe 0s 4s forwards!important;
}
.page-loader-signature{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;padding:24px}
.page-loader-rule{display:block;width:150px;height:1px;background:linear-gradient(90deg,transparent,#b8963e,transparent);transform-origin:center;animation:entrance-rule 650ms ease both}
.page-loader-home{background:#faf8f3}
html[data-entrance=home] [data-reveal]{animation-duration:600ms!important;animation-delay:150ms!important}
html[data-entrance=home] .hero-copy [data-reveal]:nth-child(1){animation-delay:80ms!important}
html[data-entrance=home] .hero-copy [data-reveal]:nth-child(3){animation-delay:180ms!important}
html[data-entrance=home] .hero-copy [data-reveal]:nth-child(4){animation-delay:220ms!important}
.page-loader-home .page-loader-signature>span{font:600 12px/1.6 'Space Grotesk',sans-serif;letter-spacing:.32em;color:#2c2416;animation:entrance-signature 550ms ease both}
.page-loader-home .page-loader-signature>span:last-child{font-size:9px;letter-spacing:.26em;color:#a08a6a}
html.page-revealing .page-loader-home{animation:entrance-up var(--entrance-reveal) var(--entrance-ease) both!important}
html.page-revealing .page-loader-signature{opacity:0;transition:opacity 260ms ease}

/* IslandBook's two water-colored curtains now open across the entire viewport. */
html.page-entering .page-loader-islandbook .ib-loader-signature{animation:entrance-signature 550ms ease both}
html.page-entering .page-loader-islandbook .ib-loader-rule{animation:entrance-rule 650ms ease both}
html.page-revealing .page-loader-islandbook .ib-loader-signature{animation:none;opacity:0;transition:opacity 260ms ease}
html.page-entering.page-revealing .page-loader-islandbook:before{animation:entrance-up var(--entrance-reveal) var(--entrance-ease) both}
html.page-entering.page-revealing .page-loader-islandbook:after{animation:entrance-down var(--entrance-reveal) var(--entrance-ease) both}
html.page-entering.page-revealing .ib-current .sculpture-water{animation:ib-water-arrive 850ms cubic-bezier(.16,1,.3,1) both}
html.page-entering.page-revealing .ib-current .art-subject>img{animation:ib-sculpture-arrive 700ms 80ms cubic-bezier(.16,1,.3,1) both}
html.page-entering.page-revealing .ib-current .hero-heading h1>span{animation:ib-type-arrive 600ms 100ms cubic-bezier(.16,1,.3,1) both}
html.page-entering.page-revealing .ib-current .hero-heading h1>span+span{animation-delay:150ms}
html.page-entering.page-revealing .ib-current .art-frame{animation:ib-frame-arrive 600ms 180ms ease-out both}
html.page-entering.page-revealing .ib-current .hero-description h2{animation:ib-copy-arrive 550ms 200ms ease both}
html.page-entering.page-revealing .ib-current .hero-description .hero-button{animation:ib-copy-arrive 550ms 250ms ease both}
html.page-entering.page-revealing .ib-current .hero-baseline{animation:ib-copy-arrive 500ms 300ms ease both}

/* The Websites entrance uses the poster's paper, ink, and condensed italic type. */
.page-loader-websites{color:#1c2920}
.page-loader-websites:before,.page-loader-websites:after{content:'';position:absolute;top:0;bottom:0;width:calc(50% + 1px);background:#f1efe6}
.page-loader-websites:before{left:0}
.page-loader-websites:after{right:0}
.page-loader-websites .page-loader-title{font:italic 400 clamp(62px,12vw,150px)/1 'Newsreader',Georgia,serif;letter-spacing:-.065em;text-transform:uppercase;animation:entrance-signature 550ms ease both}
.page-loader-websites .page-loader-rule{width:110px;background:#829077}
html.page-revealing .page-loader-websites:before{animation:entrance-left var(--entrance-reveal) var(--entrance-ease) both}
html.page-revealing .page-loader-websites:after{animation:entrance-right var(--entrance-reveal) var(--entrance-ease) both}
html:not(.page-entering) .page-loader{display:none!important}
html:not(.page-entering) [data-reveal]{animation-play-state:running!important}
@keyframes entrance-up{to{transform:translateY(-101%)}}
@keyframes entrance-down{to{transform:translateY(101%)}}
@keyframes entrance-left{to{transform:translateX(-101%)}}
@keyframes entrance-right{to{transform:translateX(101%)}}
@keyframes entrance-signature{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes entrance-rule{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes entrance-failsafe{to{visibility:hidden}}
@media(max-width:600px){.page-loader-home .page-loader-signature>span{font-size:10px;letter-spacing:.2em}}
@media(prefers-reduced-motion:reduce){html.page-entering .page-loader{display:none!important}}
