/* One material language: blue light, elastic media and movable letterforms. */
.living-elastic{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.has-living-elastic{position:relative;isolation:isolate}
.has-living-elastic>img{opacity:0!important}
.has-living-elastic>video{opacity:0!important}
.work-film{margin:0;min-width:0}
.motion-media{position:relative;aspect-ratio:2624/1440;border-radius:12px;isolation:isolate}
.motion-media>img{display:block;width:100%;height:100%;object-fit:contain;border-radius:12px}
.motion-media>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:12px;opacity:0;pointer-events:none}
.film-ready .motion-media>video{opacity:1}
.motion-media>.living-elastic{border-radius:12px}
.work-film figcaption{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:50px;font-size:10px;color:var(--page-secondary)}
.work-film button{background:none;color:inherit;border:1px solid var(--page-rule);border-radius:24px;padding:10px 17px;min-height:44px;font:inherit;cursor:pointer}
.work-film button:disabled{cursor:default;opacity:.65}
.work-film button:focus-visible{outline:2px solid var(--page-accent);outline-offset:3px}
.has-living-elastic>.gallery-arrow{z-index:2}
.world-image.has-living-elastic{background:transparent;overflow:visible}
.collection-feature>a.has-living-elastic{display:block}
.has-living-ink{position:relative;isolation:isolate;overflow:hidden}
.living-ink{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:.95}
.page-invitation{background:var(--ink);color:var(--paper);--page-bg:var(--ink);--page-text:var(--paper);--page-rule:#4d5461}
.page-invitation.has-living-ink .eyebrow{color:#a4abb8}
.page-invitation.has-living-ink .round-link{border-color:#6d778a;color:#f4f6fb}
.has-living-ink .contact-horizon{opacity:.38}
.water-interlude{position:relative;isolation:isolate;overflow:hidden;background:#e8edf7;color:#262a31;min-height:440px;height:calc(88svh - 100px);max-height:780px;padding:48px var(--pad,40px) 220px;scroll-margin-top:0}
.water-intro{position:relative;z-index:1;pointer-events:none}
.water-intro h2{font-size:clamp(60px,8.5vw,128px);line-height:1.05;letter-spacing:-.065em;font-weight:450;margin:30px 0 22px}
.water-intro>p:last-child{font-size:12px}
.after-water{min-height:100svh;display:flex;flex-direction:column}
.after-water>.site-footer{margin-top:0}
.after-water>.next-chapter{flex:1}
[data-fluid-pool]:after{content:"+  ○  □  ×  △  ○  +  □  ×  △  ○  +  □  ×  △  ○  +  □  ×  △";position:absolute;bottom:24px;left:0;width:100%;text-align:center;word-spacing:22px;color:#798396;font-size:15.6px;pointer-events:none;white-space:nowrap;overflow:hidden}
.has-living-pool:after{display:none}
.living-pool{position:absolute;bottom:0;left:0;width:100%;height:100%;pointer-events:none}
.pool-caption{position:absolute;bottom:220px;left:var(--pad,40px);font-size:8px;letter-spacing:1.5px;color:#5c6576;pointer-events:none}
.roll-slot>span[data-glyph]{position:relative}
.roll-slot>span[data-glyph]:after{content:attr(data-glyph);position:absolute;left:0;top:120%;white-space:pre}
.enhanced [data-roll].is-rolling .roll-slot>span{animation:living-letter .65s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--delay)}
@keyframes living-letter{0%{transform:translateY(0)}100%{transform:translateY(-120%)}}
[data-swap] .roll-slot>span[data-glyph]:before{content:attr(data-glyph);position:absolute;left:0;bottom:120%;white-space:pre}
/* Outranks the reveal (v2/chapters.css) and keeps its letter-arrive first, verbatim, so toggling the swap never restarts the finished reveal. */
.enhanced [data-swap].is-visible:not(.is-rolling) .roll-slot>span.is-swap-up{animation:letter-arrive .6s cubic-bezier(.16,1,.3,1) var(--delay) both,living-swap-up .45s cubic-bezier(.2,.8,.2,1) both}
.enhanced [data-swap].is-visible:not(.is-rolling) .roll-slot>span.is-swap-down{animation:letter-arrive .6s cubic-bezier(.16,1,.3,1) var(--delay) both,living-swap-down .45s cubic-bezier(.2,.8,.2,1) both}
@keyframes living-swap-up{0%{transform:translateY(0)}100%{transform:translateY(-120%)}}
@keyframes living-swap-down{0%{transform:translateY(0)}100%{transform:translateY(120%)}}
.still-mode .roll-slot>span.is-swap-up,.still-mode .roll-slot>span.is-swap-down{animation:none!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.roll-slot>span.is-swap-up,.roll-slot>span.is-swap-down{animation:none!important;transform:none!important}}
@media(hover:hover) and (pointer:fine){
 .text-link,.round-link,.contact-pill,.collection-links a,.site-footer nav a{transition:color .2s,background .2s,translate .35s cubic-bezier(.2,.9,.2,1)}
 .text-link:hover,.round-link:hover,.collection-links a:hover,.site-footer nav a:hover{translate:0 -3px}
 .hero-cross{transition:transform .65s cubic-bezier(.2,1.3,.3,1)}.page-hero:hover .hero-cross{transform:rotate(90deg)}
}
@media(max-width:600px){.water-interlude{min-height:440px;padding:36px 24px 220px}.water-intro h2{font-size:64px}.pool-caption{bottom:220px;font-size:7px}.living-pool{height:100%}}
.still-mode .living-ink,.still-mode .living-elastic,.still-mode .living-pool{display:none}
.still-mode .has-living-elastic>img{opacity:1!important}
.still-mode [data-roll].is-rolling .roll-slot>span{animation:none!important;transform:none!important}
@media(prefers-reduced-motion:reduce){
 .living-ink,.living-elastic,.living-pool{display:none!important}
 .has-living-elastic>img{opacity:1!important}
 [data-roll].is-rolling .roll-slot>span{animation:none!important;transform:none!important}
 .text-link,.round-link,.collection-links a,.site-footer nav a,.hero-cross{transition:none!important;translate:none!important;transform:none!important}
}

.next-link>.next-title{font-size:inherit}
@media(max-width:600px){.pool-caption{max-width:125px;line-height:1.6}}
/* The former orbit occupied a reserved column. The new pool lives below the link. */
.next-chapter .next-link{padding-right:0}
.next-chapter .next-link>span{position:static}
.next-chapter .next-title{min-width:0}

.page-invitation .round-link:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* The Work handoff previews the practice instead of stretching an empty panel. */
.after-water>.next-chapter{display:flex;flex-direction:column}
.after-water .next-sculpture{display:none}
.practice-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;flex:1;margin:8px 0 28px}
.practice-preview article{display:flex;flex-direction:column;min-width:0}
.practice-preview-art{position:relative;flex:1;min-height:190px;overflow:hidden;background:#0c1018}
.practice-preview-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.practice-preview h3{display:flex;align-items:baseline;gap:12px;margin:17px 0 7px;font-size:clamp(16px,2vw,25px);font-weight:450;letter-spacing:-.04em}
.practice-preview h3 span{font-size:9px;letter-spacing:.06em;color:#5c6576}
.practice-preview p{margin:0;font-size:11px;line-height:1.5;color:#5c6576}
@media(min-width:1000px){.practice-preview-art{min-height:240px}}
@media(max-width:600px){
 .practice-preview{gap:10px;margin:0 0 26px}
 .practice-preview-art{min-height:145px}
 .practice-preview h3{display:block;font-size:15px;line-height:1.2;margin:12px 0 0}
 .practice-preview h3 span{display:block;font-size:8px;margin-bottom:8px}
 .practice-preview p{display:none}
 .after-water .next-link{font-size:clamp(43px,11.5vw,57px)}
}
